[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(DTPtechNote:1167) Re: [command] ntpdate



>【外のサーバーから日付を得て、厳密な日付チェックを行う】
私だったらこっちの方向を考えてみたくなります。

set ntpq to do shell script "ntpdate -q -s ntp.asahi-net.or.jp" --ntpサーバに問い合わせ。

set ntpq_return to paragraphs of ntpq as list
set ntpq_return_string to item (count of item of ntpq_return) of ntpq_return --到達サーバ数のうち最後からの返事をみる。
--"server 202.224.32.4, stratum 2, offset 691201.831041, delay 0.04245"
--上記の形式からoffset 値だけを抜き出す。

set start_c to offset of "offset" in ntpq_return_string --character start 
set end_c to offset of "delay" in ntpq_return_string --character start 
set offset_time to (characters (start_c + 6) through (end_c - 3) of ntpq_return_string) as Unicode text
set delay_day to offset_time / days --日数で割る。何日おくれてるかでる。

if delay_day > 0 or delay_day < 0 then --過去でも未来でもいけない。
	display dialog "日付が狂ってるので強制終了。" as Unicode text --終了
	return
end if

--日付遅延がなかったのでdateコマンドをたたく
set Exp to "20050630" --有効期限日設定
set user_time to do shell script "date +%Y%m%d"
--=>"20050617"

if Exp > user_time then
	set app_run to "1" --アプリケーション起動許可フラグをたてる。
	display dialog "OK,お試しください。" as Unicode text --有効
else
	display dialog "試用期間が終了しました。" as Unicode text --有効期限終了
	return
end if