ホームページ >バックエンド開発 >PHPチュートリアル >PHP で IP アドレスとポート番号 (IP:ポート) に ping を実行する方法

PHP で IP アドレスとポート番号 (IP:ポート) に ping を実行する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-18 12:09:43800ブラウズ

How to Ping an IP Address and Port Number (IP:port) in PHP

PHP で IP アドレスとポート番号に ping を実行する方法

問題:

開発IP アドレスとポート番号 (IP:ポート) を ping してサーバーの可用性を確認するスクリプト。

解決策:

提供された最初のスクリプトは Web サイトのみに ping できますが、Web サイトには ping できません。 IP:ポート。この問題に対処するには、次の修正バージョンを使用できます。

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

// Example usage
$host = "193.33.186.70";
$port = 80;
$ping = ping($host, $port, 10); // Set a timeout of 10 seconds

if ($ping != "down") {
    echo "Server is up with a ping of $ping";
} else {
    echo "Server is down";
}</code>

このスクリプトは、fsockopen() を使用して、指定された IP およびポートへの TCP 接続を確立します。接続にかかる時間を測定し、ミリ秒単位で ping 時間を返します。接続を確立できなかった場合は「ダウン」を返します。

その他の考慮事項:

  • TCP 以外のプロトコル (UDP など) の場合、ping 機能を実装するには追加の作業が必要です。
  • ネットワーク通信をより深く理解するには、OSI モデルとトランスポート層プロトコル (ICMP および TCP) を検討する必要があります。

以上がPHP で IP アドレスとポート番号 (IP:ポート) に ping を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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