sntpget - SNTP protocol client ネットワーク上のサーバに時刻を合わせます。 ■前口上 つい先日、TIME プロトコルを使ってネットワークでの時刻同期を行う プログラムを作りました。が、このプロトコル、いかんせん古いものだ けあって、精度が今一つなんですね。ということで、がんばってお勉強 して、SNTP に対応したクライアントソフトを作ることにしました。 ■動作環境 MS-DOS 汎用(のはず)。 また、TCP/IP のプロトコルスタックとして、TEEN が必須です。 ただし、PC-9821As/U2 + NEC DOS6.2 + TEEN on Ethernet v0.39c の環 境でしかテストは行なわれておりません。 ■使用法 Usage: sntpget 単にサーバのホスト名を指定して実行させるだけです。例えば、東京 理科大のサーバであれば sntpget ntp.sut.ac.jp となります。 そして、ホストから時刻情報を受け取り、それを自分のマシンに設定 して終了します。もしサーバから応答がないときは10回リトライしま すが、それでも応答がないときはそこで時刻を合わせることをあきらめ ます。 一応、DOSのファンクションを使って 1/100 秒まで合わせるように 作ったつもりですが、ハードウェア的に1秒単位でしか設定することが できないNECの PC-98 シリーズでしかテストしていないため、ロジッ クが正しいかどうかわかっておりません。また、同じ理由により、どの 程度の精度が確保できているかは不明です。 なお、時刻の設定に際し、環境変数 TZ を参照しますので、これは正 しく設定しておいてください。 ■ソースに関して LSI C-86 Ver.3.30c 試食版で作成しております。 また、ライブラリとして、neko さん作の「LSI-C用 TEEN ライブラリ」 を使っております。まぁ、ライブラリとしてリンクしたというよりも、 ソースをコピー&ペーストしたというのが正解ですが。さらに言えば、 これの大元の XMaZ Project、OPRETER、合著 の三者がコピーライトして いる TEEN.LIB のコードも含まれていると思われます。 また、その TEEN.LIB の最新版の配布パッケージに含まれているサン プルの UDPECHO からも大幅にコードをお借りしています。というか、そ のソースを改変して作った、というのが本当のところだったりします。 ■著作権、再配布等 一応、著作権は主張させていただきます。以下、本プログラム、およ びドキュメントを総称して「本プログラム等」と表します。 ・本プログラム等の著作権は としき が有します。 ・本プログラム等を使用することにより、使用者の予期しない影響が あっても、作者はなんらの保証および補償をいたしません。 ・本プログラム等の転載、再配布、販売等は、事前に著作権者の許可 を求めなければ、自由にできます。 ^^^^^^ ^^^^^^^^^^^^ ただし、事前に許可を求められた場合は、原則として全てお断り いたします。なお、事後報告は歓迎いたします。 ^^^^^^^^^^ もちろん書籍、雑誌、CD−ROMへの収録も自由です。 なお、転載等を長期間継続するような場合でも、定期的な連絡・ 報告などは不要です。また、1つのバージョンについて1ヶ所の 転載先に対し3回以上連絡があった場合、当該バージョンの転載 中止を要請することがあります。 ・著作者人格権の同一性保持権に基づき、本プログラム等の改変を自 由に行うことを許可します。というよりも、積極的な改変をお願い いたします。 ただし、改変した本プログラム等では、著作者人格権の氏名表示権 に基づき、としきの著作権表示を消去することを要請します。 なお、差し支えなければ改変した部分をご連絡いただければ、次の バージョンからその改変内容を反映させていただきたいと思います。 ・転載等の際は、入手した本プログラム等のファイル構成に対し変更 を加えずに再配布してください。ただし、本プログラム等に改変を 加えた場合はこの限りではありません。 ・作者は、このプログラムに不備があっても、それを訂正する義務を 負いません。しかし、努力はするでしょうから連絡をお願いします。 ・仕様拡張に関する意見は、私の技術と体力と気力が許す範囲で対応 したいと思います。 ■謝辞 アーカイブ中の実行ファイルは、LSI C-86 Ver 3.30c 試食版でコンパ イルしたものです。LSI C-86 試食版を公開されたエル・エス・アイ ジ ャパン(株)に感謝申し上げます。 DOSマシンをネットワークに接続する TEEN とその関連ツールの開 発に携わった XMaZ Project の Shinra さんをはじめとする皆さん方に もお礼申し上げます。こんなすばらしいソフトをフリーで公開していた だいているなんて、驚きに堪えません。 TEEN 用のライブラリを LSI C-86 でも使えるように移植してくださっ た neko さんに感謝いたします。 TIME プロトコルクライアントをリリースした際に、SNTP 用クライア ントを作るよう背中を押してくださった msyk さんと、貴重なアドバイ スをいただいた合著さんに感謝します。 ■改版履歴 version 0.01 2002-11-01 ・とりあえず動く