Rumah > Artikel > pembangunan bahagian belakang > Mengapakah fungsi ping PHP saya sentiasa mengembalikan "mati" tanpa mengira alamat IP?
Ping Alamat IP Menggunakan PHP dan Gemakan Hasilnya
Dalam soalan pengaturcaraan ini, pengguna mendapatkan bantuan dalam mencipta fungsi PHP untuk ping alamat IP dan paparan sama ada ia masih hidup atau tidak. Mereka telah melaksanakan fungsi, tetapi ia secara konsisten mengembalikan "mati" tanpa mengira alamat IP yang dibekalkan.
Fungsi Awal:
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"; } }
Penjelasan:
Fungsi ini cuba ping alamat IP menggunakan fungsi shell_exec, dengan pilihan -n 1 untuk menghantar hanya satu permintaan ping. Ia kemudian menyemak output arahan ping untuk rentetan "Permintaan tamat masa." untuk menentukan sama ada alamat IP masih hidup.
Isu:
Cadangan Penyelesaian:
Soalan pengguna juga mencadangkan penyelesaian alternatif:
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; }
Penjelasan:
Fungsi ini:
Atas ialah kandungan terperinci Mengapakah fungsi ping PHP saya sentiasa mengembalikan "mati" tanpa mengira alamat IP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!