• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:[クライアントからサーバの時刻を取得する])

[クライアントからサーバの時刻を取得する]

このQ&Aのポイント
  • 社内LAN環境にてcgiアプリケーションを作成しています。予約処理のようなものですが、クライアントとサーバの時刻に差が有ると問題が起こる場合が有ります。
  • setServerTime.jsのURLを社内LAN上のサーバのローカルIPアドレスにしたのですが、それだけではサーバの時刻を正しく取得できませんでした。
  • やりたいことは、LAN上の2台のマシンA、Bを使用して、B上のブラウザからAのマシンの時刻をBで知りたいのですが。。。

質問者が選んだベストアンサー

  • ベストアンサー
  • KDASH-XP
  • ベストアンサー率45% (62/135)
回答No.2

こんばんわ。 上記の例では192.168.1.11(サーバ?)上の時刻を取得しているのではないでしょうか? クライアントとは少し違う時刻...というのは単純にサーバとクライアントで時刻がずれているのだと思います。 上記のサイトの説明でもありますがJavaScriptの new Date()は、実行しているブラウザのPC時刻より取得しますが、CGIかなにかを使った場合は、サーバ側の時刻を取得できます。 B上のブラウザでAの時刻を知りたいのなら、A上に時刻を取得するCGIスクリプトを設置し、Bからスクリプト呼び出しすれば取得できると思います。

jg1wjz
質問者

補足

KDASH-XPさん、ありがとうございます。 最初そう思って「やった~!」と思ったのですが、192.168.1.11(サーバ)の時刻を変更(コマンドプロンプトで timeコマンドをたたいて時分を変更)しても その時刻がとれず、少しだけ違う、どこかのマシンの時刻を表示しているだけなのです。 ## B上のブラウザでAの時刻を知りたいのなら、 ## A上に時刻を取得するCGIスクリプトを設置し、 ## Bからスクリプト呼び出しすれば取得できると思います。 まさにこれを実現しているのが参考のURLだと思って試してみたのですが。。。 qaz_qwerty_meさん、ありがとうございます。 NTPによる同期は別システムでやったことがあるので少しだけわかります。 ただ、今回はお客様の都合により、外部のNTPサーバに接続することができません。 サーバのマシンは外部NTPサーバより時刻を設定できるかもしれませんが、 クライアントのほうは出来ない状態です。 そしてサーバで時刻合わせをしていなくて、時刻が正しくなくても、 システムはサーバの時刻で動くことになり クライアントのほうはサーバの時刻にあわせて動かないといけないのです。 引き続き、よろしくお願いいたします。

その他の回答 (1)

回答No.1

>やりたいことは、LAN上の2台のマシンA、Bを使用して、B上のブラウザから >Aのマシンの時刻をBで知りたいのですが。。。 基本的なことを勘違いしています。 検索エンジンでNTPというキーワードで検索すると、ネットワークに接続されたコンピュータの時刻を同期するプロトコルとしてNTPが解説されているので、それを参照して理解して下さい。 NTPを理解すれば「クライアントとサーバの時刻に差が有ると問題」は解決すると思います。 一般的なNTPによる同期は、外部のNTPサーバ(stratum 1)に同期した社内NTPサーバ(stratum 2)を1台決め、他のサーバやクライアンが社内NTPサーバに同期させて外部NTPサーバの負荷を減らす構成を作ります。 GPSでもNTPサーバを構築できるので必ず外部サーバがなくても高精度の時刻同期を行うことができます。

関連するQ&A