Maison > Article > développement back-end > Pourquoi ma fonction ping PHP renvoie-t-elle toujours « mort » quelle que soit l'adresse IP ?
Pinger une adresse IP à l'aide de PHP et faire écho au résultat
Dans cette question de programmation, un utilisateur demande de l'aide pour créer une fonction PHP pour pinger une adresse IP et afficher si elle est vivante ou non. Ils ont implémenté une fonction, mais elle renvoie systématiquement "mort" quelle que soit l'adresse IP fournie.
Fonction initiale :
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"; } }
Explication :
La fonction tente de pinger l'adresse IP à l'aide de la fonction shell_exec, avec l'option -n 1 pour envoyer une seule requête ping. Il vérifie ensuite la sortie de la commande ping pour la chaîne « Demande expirée ». pour déterminer si l'adresse IP est active.
Problèmes :
Solution proposée :
La question de l'utilisateur suggère également une solution alternative :
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; }
Explication :
Cette fonction :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!