[WinSNTPCって何?] [動作環境] [ダウンロード] [インストール] [アンインストール] [変更履歴] [使用と配布の条件] [連絡先] [FAQ [終了コード]]

WinSNTPCの使い方と注意事項

WinSNTPCって何?

WinSNTPCは、Microsoft Windows用のNTP/TIMEクライアントです。 ネットワーク上のNTP/TIMEサーバに問い合わせて、パソコン内蔵時計を正確な時間に修正します。

NTPクライアント*1モードでは、ネットワークの遅延時間を考慮に入れたアリゴリズムにより、高精度*2な時間を得る事が出来ます。

パソコンの起動毎に、自動的に時計修正を行います。 24時間連続通電しているパソコン用に、一定時間毎に自動修正するモードも持っています。

エラーが発生した時以外は表に現れず、裏方に徹すると言う思想で作られています。 完全に(エラーがあっても)表に現れない設定にも出来ますので、バッチ処理や他のプログラム内から呼び出すと言った使い方にも適しています。

動作環境

Microsoft Windows 95と98, Me, NT, 2000, XP上で動作するように作りましたが、確認はWindows 95でしかしていません。*3

時計を合わせたいパソコンがネットワークにつながっていて、そのネットワーク上にNTPサーバかTIMEサーバが無ければいけません。 インターネットにつながる環境ならば問題ありません。

ダウンロード

WinSNTPCの最新版は、ここからダウンロードしてください。

インストール

適当なディレクトリ(フォルダ)を作って、そこにダウンロードしたファイルを解凍してください。

解凍して出てきたファイルのsetup.exeを実行してください。 設定ウインドウが開きますので、下記各項目を環境に合わせて設定してください。

setup.png
設定ウインドウ
[サーバ]
出来るだけ近くのNTPサーバを指定してください。 お使いのプロバイダに公開されたNTPサーバがあれば、そのアドレスを指定してください。 なければ、インターネットで検索すればいくつか見つかると思います。 例えば、ここここなど。
[プロトコル]
[TIME]は、ネットワークの遅延による誤差が大きいので、LANでの使用を前提にしています。 インターネット上のサーバを使って時間修正を行う場合は、[NTP]を使ってください。
[動作モード]
[起動毎]は自動/常時接続環境向けの設定です。 パソコンの起動毎に自動的に時計修正します。 ルータやLANでサーバと接続している環境向けです。 [手動]は手動接続環境向けの設定です。 ディスクトップアイコンから手動で実行して時計修正します。 TAやモデムでサーバと接続している環境向けです。 [時間毎]は自動/常時接続環境で24時間連続通電しているパソコン向けの設定です。 指定した時間毎に自動的に時計修正します。
[動作確認]
実際にサーバと通信をして、時計合わせを行います。 設定内容での動作確認が出来ます。

最後に[設定]ボタンを押して、インストール完了です。 [動作モード]に[起動毎]か[時間毎]を選んだ場合は、次にパソコンを再起動した時から設定が有効になります。

設定が確定してしまえば、動作に必要なファイルはwinsntpc.exeだけです。 他のファイルは必要無ければ、消してしまって構いません。

setup.exeでのインストールが上手く行かない。 または、もっと詳細な設定をしたい場合は、スタートメニューの[スタートアップ]、または[デスクトップ]に、手動でwinsntpc.exeのショートカットを登録してください。 サーバ等の設定は、コマンドラインオプションで指定します。

winsntpc -help
で、オプションの説明が表示されます。 コマンドラインオプションを使うと、setup.exe以上の詳細な設定が出来ます。 バッチ処理や他のプログラム内からWinSNTPCを呼び出すと言った使い方も出来ます。

Windows XPや2000, NTの場合、時間設定権限のあるアカウントでインストールしてください。 時間設定権限がないと、時間設定に失敗しエラーになります。

サーバとパソコンの間にファイアーウォール(フィルタ)がある場合、NTPプロトコルでは、サーバ側のポート123番とパソコン側のポート1024番から65535番までの間のUDPパケットを通す設定にしてください。 TIMEプロトコルでは、サーバ側のポート37番とパソコン側のポート1024番から65535番までの間のTCPパケットを通す設定にしてください。 それらのポートがふさがっている場合には、サーバとの通信に失敗しエラーになります。 サーバ側のポート番号は、コマンドラインオプションで変更する事も出来ます。 ポート番号を変更した場合は、ファイアーウォール(フィルタ)の設定もそれに合わせて変更してください。

アンインストール

スタートメニューの[スタートアップ]、または[デスクトップ]に登録されているWinSNTPCを削除してください。

インストールしたファイルを、ディレクトリ(フォルダ)ごと削除してください。

レジストリや設定ファイルは使っていませんので、以上で完全に削除できます。

変更履歴

Ver.0.8
-helpだけではなく、--help-hでもソフトウエア情報を表示する様に、コマンドオプションを追加した。
Ver.0.7
配布ライセンスをGPL2に変更した。
  • -helpオプションで表示される情報に、ライセンス情報を追加した。
Ver.0.6
NTPプロトコルのエラーの場合は100番台、TIMEプロトコルのエラーの場合は200番台になるように終了コードを変更した。
Ver.0.5
TAとモデム環境用に、[デスクトップ]にもインストール出来る様にした。
  • アイコンイメージを追加した。
Ver.0.4
インストーラのsetup.exeを追加した。
Ver.0.3
TIMEクライアントモードを追加。
  • プロトコル切り替えの為の-ntpオプションと-timeオプションを追加。
  • -verboceオプションを追加。
  • パケット落ちに対応する為、リトライ出来る様にした。 -retryオプションを追加。
  • -helpオプションで、その時点でのパラメータ設定値も表示する様にした。
  • Windows用SYSLOG受信ソフトのwinlog.exeを添付した。
Ver.0.2
コーディングを整理。
  • 試作時の動作テスト用に使っていた余分な処理が残っていたので削除した。 それにより-portオプションも無くなった。
Ver.0.1
公開版として出すためにコーディングを整理。
  • エラーメッセージをSYSLOGにも出力するようにした。
  • -periodicオプションを追加。
  • コンソール版のwinsntpcc.exeを追加。
Ver.0.0
アイデアが実現可能かを確認するために作った試作版。

使用と配布の条件

連絡先

意見や希望、動作報告、質問等は大歓迎です。 下記アドレスまで。

Yuichi Kobayashi <kobayasy@kobayasy.com>

FAQ

終了コード

winsntpc.exewinsntpcc.exeの終了コードとその内容の一覧です。 バッチ処理や他のプログラム内からwinsntpc.exe、またはwinsntpcc.exeを呼び出すと言った使い方をする場合、時間合わせに成功したか失敗したか、失敗した場合はその原因を下記終了コードで判別できます。

正常終了時はコード0になります。

0
adjusted systemtime to server

異常終了時は0以外のコードになります。

1
initialize winsock failure
2
invalid parameter パラメータ

100番台はNTPプロトコルのエラーです。

101
host name lookup failure
102
make socket failure
103
send packet failure
104
send packet incomplete
105
wait response failure
106
no response from servre
107
receive packet failure
108
receive packet incomplete
109
unspecified response from server
110
can't set systemtime

200番台はTIMEプロトコルのエラーです。

201
host name lookup failure
202
make socket failure
203
can't connect to server
204
wait response failure
205
no response from servre
206
receive packet failure
207
receive packet incomplete
208
can't set systemtime

負の値や上記以外の値は未知のエラーです。

(その他)
unknown failure


*1RFC2030のSimple Network Time Protocol (SNTP) Version 4に準拠。
*21/256秒の精度。
*3ユーザーからWindows 2000での動作報告がありました。
Copyright © 2002 Yuichi Kobayashi <kobayasy@kobayasy.com>