PHP を使用して IP アドレスに ping を実行し、結果をエコーする
このプログラミングの質問では、ユーザーは ping を実行する PHP 関数の作成について支援を求めています。 IP アドレスを取得し、生存しているかどうかを表示します。彼らは関数を実装しましたが、指定された IP アドレスに関係なく常に「デッド」を返します。
初期関数:
function pingAddress($ip){ $pingresult = shell_exec("start /b ping $ip -n 1"); $dead = "Request timed out."; $deadoralive = strpos($dead, $pingresult); if ($deadoralive == false){ echo "The IP address, $ip, is dead"; } else { echo "The IP address, $ip, is alive"; } }
説明:
この関数は、ping 要求を 1 つだけ送信する -n 1 オプションを指定して、shell_exec 関数を使用して IP アドレスへの ping を試行します。次に、ping コマンドの出力で文字列「Request timed out」を確認します。 IP アドレスが生きているかどうかを確認します。
問題:
提案された解決策:
ユーザーの質問は代替解決策も提案しています:
function pingAddress($ip) { $pingresult = exec("/bin/ping -n 3 $ip", $outcome, $status); if (0 == $status) { $status = "alive"; } else { $status = "dead"; } echo "The IP address, $ip, is ".$status; }
説明:
この関数:
以上がIP アドレスに関係なく、PHP ping 関数が常に「dead」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。