PHPリモート時刻調整

WBOY
WBOYオリジナル
2016-06-23 14:30:081154ブラウズ

ほとんどのサーバーの時刻は非常に正確ですが、このような状況は避けられません。は不正確であり、一部のサーバーでは時刻同期のために ntp (ネットワーク タイム プロトコル) が有効になっていません。また、ハードウェア環境などの要因により、時刻の変動はわずか数分、最大でも数時間です。同じ Web サイトが同じ時間を使用するため、この状況は理解できますが、場合によってはこれが悪い場合があります。

インターネット上には、NTP プロトコルを使用して UTC 時刻修正を無料で提供するタイミング サーバーがあります。詳細については、前のリンクを参照してください。彼が提供する時刻誤差は約 20 ミリ秒です (データ送信プロセス中にかかる時間は言うまでもありませんが、NTP は長い間これを考慮していました)。このため、このタイミング サーバーを通じて、非常に信頼できる現在時刻を取得できます。

ここでは、PHP を使用して非常に正確な UTC 時刻を取得する方法を見ていきます。NTP プロトコルは使用するのが少し難しいため、より優れたプロトコルである Daytime Protocol を使用します。このプロトコルを使用すると、テキスト データを直接取得できるため、処理がより便利になります。 time.nist.gov のタイム サービスを使用します。コードは、TCP を使用してポート 13 に接続するだけです。

$fp=fsockopen('time.nist.gov',13,$errno,$errstr,90);echo fread($fp,2096);

取得されるデータは次のようになります:

54979 09-05-28 09:10:50 50 0 0 206.9 UTC(NIST) *

この文字列のすべての部分は意味を持っています。詳細については、http://tf.nist.gov/service/its を参照してください。 htm では、中央の部分と 206.9 の前の 0 のみに注目します。これはサーバーの正常性状態を表し、現在の時刻が信頼できるかどうかも反映します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。