首頁 >後端開發 >php教程 >如何在 PHP 中準確 Ping 一個 IP 位址並顯示其狀態?

如何在 PHP 中準確 Ping 一個 IP 位址並顯示其狀態?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-05 21:07:02364瀏覽

How to Accurately Ping an IP Address and Display its Status in PHP?

使用 PHP Ping IP 位址並顯示結果

在 PHP 中,有多種方法可以 ping IP 位址並確定其狀態。一種方法是利用 shell_exec() 函數來執行系統指令。

所提供的程式碼片段中的 pingAddress() 函數旨在 ping 一個 IP 位址並回顯該位址是否在線上或離線。但是,無論實際 IP 狀態如何,程式碼目前都會傳回不正確的「死亡」結果。

潛在問題:

  1. 雙引號: 確保 ping 指令中的 IP 位址用雙引號引起來。提供的程式碼片段使用單引號,這會阻止對 $ip 等變數的解釋。
  2. 退出狀態檢查: 雖然 shell_exec 回傳指令的輸出,但檢查退出狀態更準確地決定指令是否成功。非零退出狀態表示失敗,因此 IP 被視為「死亡」。

替代方法:

這是糾正上述問題並提供更便攜的解決方案的代碼:

function pingAddress($ip) {
    // Ensure IP address is double-quoted
    $command = "/bin/ping -n 3 \"$ip\"";

    // Execute the ping command
    exec($command, $output, $exit_status);

    // Check exit status
    if ($exit_status === 0) {
        $status = "alive";
    } else {
        $status = "dead";
    }

    // Echo the result
    echo "The IP address, $ip, is $status.";
}

pingAddress("127.0.0.1");

此改進的程式碼解決了雙引號問題並利用退出狀態來準確顯示結果。它還消除了對 Windows 啟動命令的任何潛在依賴。

以上是如何在 PHP 中準確 Ping 一個 IP 位址並顯示其狀態?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn