ホームページ  >  記事  >  バックエンド開発  >  PHP は特定の IP とポートの組み合わせに ping を実行できますか?

PHP は特定の IP とポートの組み合わせに ping を実行できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-18 12:37:35307ブラウズ

Can PHP Ping a Specific IP and Port Combination?

PHP は IP:ポートの組み合わせに ping を実行できますか?

サーバーの可用性を確認しようとする場合、一般的なアプローチはサーバーに ping を実行することです。 IP アドレスと指定されたポート。ただし、Web サイトに ping するために設計されたスクリプトでは、この目的には十分ではない可能性があります。

解決策

PHP で IP:ポートの組み合わせを ping するには、fsockopen を利用できます。 () 関数。これを実現できる編集されたスクリプトは次のとおりです。

<code class="php">function ping($host, $port, $timeout) 
{ 
  $start = microtime(true); 
  $socket = fsockopen($host, $port, $errno, $errstr, $timeout); 
  if (!$socket) { return "down"; } 
  $end = microtime(true); 
  fclose($socket);
  return round((($end - $start) * 1000), 0)." ms"; 
}</code>

このスクリプトでは、fsockopen() を使用して接続を確立した後、開始タイムスタンプと終了タイムスタンプの差を使用して ping 時間が計算されます。接続が失敗した場合、関数は「down」を返します。

注: 提供された回答で指摘されているように、このスクリプトは TCP 接続でのみ機能します。他のプロトコルの場合は、カスタム パケットの生成と解析を含む、より高度なテクニックが必要になる場合があります。

以上がPHP は特定の IP とポートの組み合わせに ping を実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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