サーバからタイムスタンプを取得するには?

解決


ゆきんこ  2007-02-09 07:02:55  No: 135259

VB6で、サーバからのタイムスタンプを取得したいのですが、使えるコントロールをご存じないでしょうか?よろしくお願いいたします。


レンジ  2007-02-09 07:52:53  No: 135260

サーバから時間をとるだけでしたら
コントロールは不要です。

ms-dosコマンドをshell関数で実行するなどでも出来ます。
dbサーバなどならシステム時間を取得する関数sysdateなど
有りますし・・・。

サーバの種類、稼働しているサービスによって
もっと楽に出来る場合があります。


レンジ  2007-02-09 07:55:56  No: 135261

>サーバの種類、稼働しているサービスによって

もちろん、windowsサーバなのかlinux、solarisサーバかによっても
やり方は異なってきますので、一概には言えないです。


ゆきんこ  2007-02-09 08:54:47  No: 135262

NTPサーバを考えています。すみません。


レンジ  2007-02-09 18:01:17  No: 135263

おはようございます。
サーバはNTPサーバだったんですね。
ちょいとキーワード"VB6 NTPサーバ"でググって見たら、
ヨサゲな検索結果がいくつかヒットしたのでフィードバックします。

・これは過去ログに記載してあったURLです、参考にして下さい。
http://software.nikkeibp.co.jp/software/download/0112/vb0112.lzh
http://www.vector.co.jp/soft/win95/prog/se128922.html
http://www.vector.co.jp/soft/win95/prog/se151221.html
http://www.geocities.co.jp/SiliconValley/6876/rfc2030j.htm

・他にもこんなサンプルを見つけました。参考にしてください。
http://www.geocities.jp/i_love_balard/myhome/dnet/ntp.html


K.J.K.  2007-02-09 19:11:46  No: 135264

# 運営の同じところの掲示板にマルチポストをするのはいかがなものかと。
# しかし、立場上書かないといけないことがあるので書いておきます。

で、レンジさんが提示したURLの最初のサンプル及び記事の製作・執筆者と
して、ですが、そのサンプルには問題があるということを書いておきます。

私の作ったサンプルではWinSockコントロールを使っています。WinSock
コントロールでは、接続相手をRemoteHostプロパティで設定しますが、
IPアドレスでもサーバ名でも受け付けてくれます。IPアドレスを直接
指定するのならば問題はないのですが、サーバ名を指定すると、サーバ名
をIPアドレスに変換するという処理(gethostbyname)が行われます。

理想的な手順は、
1,サーバ名の設定
2,gethostbynameでIPアドレスを取得
3,NTPのコマンドを送信し、送信時刻(時刻A)を記録
4,サーバ側でコマンド受信時刻(時刻B)を記録
5,サーバ側からレスポンスを送信時刻(時刻C)込みで送信
6,クライアントで受信し受信時刻(時刻D)を記録
となり、時刻A〜Dの4つ時刻を基にして、正しいと推測される時刻を
計算することになっています。

ところが、WinSockコントロールでRemoteHostプロパティにサーバ名
を指定すると、1->2->3ではなく、1->3->2と手順の一部が入れ替わって
しまい、不正確な計算結果が生じる原因となります。

ですから、この部分を補う仕掛けを追加・補正する必要があることに
注意をしてください。コントロールだけで行うのならば、2回通信し、
1回目のデータは捨てて2回目のデータだけで計算する、とか、API関数を
用いて事前処理をする、もしくは全てAPI関数で処理する、などが
考えられます。


ゆきんこ  2007-02-09 19:38:33  No: 135265

レンジさん、KJKさん、おはようございます。
レンジさん、いろいろ調べていただきましてありがとうございます。
WinSockコントロールを使って時刻を取得できました。
まだ、詳細は検討しておりませんが、とりあえず動いたということで大変感謝しております。
KJKさん、貴重なご指摘ありがとうございます。
また、マルチポストすみません。初心者の方に質問してしまったのに、
初心者向きではない質問かと思い直したのですが、
悪いことですよね。
ご指摘のとおり、IPアドレスで設定するようにさせていただきます。
また、詳しい解説していただいて、勉強になりました。
お二方、どうもありがとうございました。


ゆきんこ  2007-02-09 19:39:08  No: 135266

とりあえず解決です。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加