
[クライアントからサーバの時刻を取得する]
社内LAN環境にてcgiアプリケーションを作成しています。
予約処理のようなものですが、クライアントとサーバの時刻に差が有ると問題が起こる場合が有ります。
タイトルのような文言で検索してみたら、いろいろ検索できたのですが
正しく理解できていないのでどうもうまく組み込めません。
参考URL:http://game.gr.jp/svmix/js/test5.htm
setServerTime.jsのURLを社内LAN上のサーバのローカルIPアドレスにしたのですが
それだけではサーバの時刻を正しく取得できませんでした。
dynamicLoad('http://game.・・・・・・・・・/getservernow.js')
↓
dynamicLoad('http://192.168.1.11/getservernow.js')
といいますか、どこのサーバの時刻かわからないのですがクライアントとは少し違う時刻を表示します。
どうしたら、サーバマシンの時刻を正しく取得できるのか
どなたかアドバイスいただけないでしょうか。
やりたいことは、LAN上の2台のマシンA、Bを使用して、B上のブラウザから
Aのマシンの時刻をBで知りたいのですが。。。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
こんばんわ。
上記の例では192.168.1.11(サーバ?)上の時刻を取得しているのではないでしょうか?
クライアントとは少し違う時刻...というのは単純にサーバとクライアントで時刻がずれているのだと思います。
上記のサイトの説明でもありますがJavaScriptの new Date()は、実行しているブラウザのPC時刻より取得しますが、CGIかなにかを使った場合は、サーバ側の時刻を取得できます。
B上のブラウザでAの時刻を知りたいのなら、A上に時刻を取得するCGIスクリプトを設置し、Bからスクリプト呼び出しすれば取得できると思います。
この回答への補足
KDASH-XPさん、ありがとうございます。
最初そう思って「やった~!」と思ったのですが、192.168.1.11(サーバ)の時刻を変更(コマンドプロンプトで timeコマンドをたたいて時分を変更)しても
その時刻がとれず、少しだけ違う、どこかのマシンの時刻を表示しているだけなのです。
## B上のブラウザでAの時刻を知りたいのなら、
## A上に時刻を取得するCGIスクリプトを設置し、
## Bからスクリプト呼び出しすれば取得できると思います。
まさにこれを実現しているのが参考のURLだと思って試してみたのですが。。。
qaz_qwerty_meさん、ありがとうございます。
NTPによる同期は別システムでやったことがあるので少しだけわかります。
ただ、今回はお客様の都合により、外部のNTPサーバに接続することができません。
サーバのマシンは外部NTPサーバより時刻を設定できるかもしれませんが、
クライアントのほうは出来ない状態です。
そしてサーバで時刻合わせをしていなくて、時刻が正しくなくても、
システムはサーバの時刻で動くことになり
クライアントのほうはサーバの時刻にあわせて動かないといけないのです。
引き続き、よろしくお願いいたします。
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- サーバー 別サーバに構築したApache+Tomcatの連携について 2 2023/03/06 23:23
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- サーバー FTPサーバについて詳しい方(アクセス権のないディレクトリを非表示にする方法) 4 2022/08/22 22:33
- ノートパソコン ESETの初期インストールの仕方 1 2022/10/14 08:26
- その他(メールソフト・メールサービス) メールが送信できない 発信側でできる対策 3 2023/05/11 10:22
- PHP PHP でメールフォームを作成したい 1 2022/05/04 22:28
- 会社・職場 残業代が出ないのに10分くらい遅刻したら15分分の給料が天引きされた(´;ω;`) 毎日ほぼ30分の 6 2023/02/28 20:36
- C言語・C++・C# condaコマンドに対応したプロキシ設定が思うようにならないようです。 2 2022/04/11 17:15
- ルーター・ネットワーク機器 新築、有線LANは付けるべきか?無線と比べてメリットは? 10 2022/10/15 02:14
- Windows 10 パソコンを再起動、起動するたびに時間が戻る。 7 2022/10/20 06:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
getParameter と getAttribut...
-
JSP+Servletでのページングの常識
-
現在時刻をミリ秒まで取得
-
JavaScriptにおいてコンピュー...
-
VBAでActiveDirectoryのユーザ...
-
VBでインストール済みアプリケ...
-
既存のアプリのsyslistview32か...
-
Flexgridで選択行の列の値を取...
-
count(*)で取得した値をJAVAの...
-
システム時刻、環境変数TZの関...
-
PHP8でWarning:Undefined varia...
-
PCインストール済みのアプリケ...
-
ListViewで複数選択された項目...
-
Yahoo! JAPANのID取得について
-
コンボボックス表示文字列を取...
-
ListView 項目の選択/選択解除...
-
Spreadの選択行の取得について
-
asp.netでtextboxの値を取得
-
何が間違ってるのか教えていた...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
VBA:小数点以下の数字を取得で...
-
VBAでActiveDirectoryのユーザ...
-
Spreadの選択行の取得について
-
PHP8でWarning:Undefined varia...
-
Flexgridで選択行の列の値を取...
-
count(*)で取得した値をJAVAの...
-
VBA Shapesの座標からセル位置...
-
データ数をカウントしたいのですが
-
JavaScriptにおいてコンピュー...
-
利用者側のMACアドレスを取得し...
-
VBA リストボックス内の値を複...
-
like演算子内に変数って使えな...
-
EXCELのリストボックスを選択し...
-
「Excel VBA」 Webクエリ マク...
-
JavaScriptでWindowsログオンID...
-
gethostbyaddrでのホスト名取得...
-
現在時刻をミリ秒まで取得
-
vbaで、オートシェイプ文字幅と...
おすすめ情報