PHP を使用した IP アドレスへの ping と結果の出力
PHP では、shell_exec() 関数を使用して ping コマンドを送信できます。指定された IP アドレスに送信されます。ただし、実際のステータスに関係なく、IP が「無効」であることを常に示すなど、関数が予期した結果を返さないシナリオが存在する可能性があります。
元のコードと問題点:
提供された関数 pingAddress($ip) は、shell_exec() を使用して、指定された IP アドレスで ping コマンドを実行します。ただし、「リクエストがタイムアウトしました」という文字列が存在するかどうかがチェックされます。
この問題は、コードがコマンドの終了ステータスの検証を適切に処理しないために発生します。 shell_exec() は、コマンドの終了ステータスではなく、コマンドの完全な出力を提供します。さらに、このコードでは IP アドレスを ping コマンドに渡すために二重引用符を使用していないため、予期しない結果が生じる可能性があります。
改善されたアプローチ:
これらに対処するには問題がある場合は、これの改良版をご紹介します。関数:
function pingAddress($ip) { // Execute the ping command with full path and 3 repetitions exec("/bin/ping -n 3 $ip", $output, $status); // Check the exit status if ($status == 0) { $result = "alive"; } else { $result = "dead"; } // Output the result echo "The IP address, $ip, is $result"; }
説明:
使用法:
改良された機能を使用するには、目的の IP アドレスを指定して呼び出します:
pingAddress("127.0.0.1");
This ping によって判断されたように、IP アドレス 127.0.0.1 が生きているか死んでいるかを示すメッセージを出力します。コマンド。
以上がPHP を使用して IP アドレスに確実に ping を送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。