Maison  >  Article  >  développement back-end  >  Comment envoyer un ping fiable à une adresse IP et afficher le résultat en PHP ?

Comment envoyer un ping fiable à une adresse IP et afficher le résultat en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-07 06:38:02360parcourir

How to Reliably Ping an IP Address and Display the Result in PHP?

Pinger une adresse IP avec PHP et afficher le résultat

Vous avez rencontré un problème en essayant de pinger une adresse IP et d'afficher le résultat en utilisant PHP. Analysons le code et proposons une meilleure alternative.

La fonction pingAddress que vous avez fournie comporte une légère erreur : la variable $ip est entourée de guillemets simples, ce qui empêche PHP de l'interpréter comme une variable. Pour résoudre ce problème, vous devez utiliser des guillemets doubles :

shell_exec("start /b ping \"$ip\" -n 1");

Cependant, même avec ce correctif, le code échoue toujours car il tente de déterminer l'état en fonction de la chaîne de sortie. Une approche plus fiable consiste à vérifier l'état de sortie de la commande ping, car cela indique si l'opération a réussi ou échoué.

Voici une version améliorée du code :

function pingAddress($ip) {
    $pingResult = exec("/bin/ping -n 3 $ip", $output, $status);

    if ($status == 0) {
        echo "The IP address, $ip, is alive";
    } else {
        echo "The IP address, $ip, is dead";
    }
}

pingAddress("127.0.0.1");

Ce code utilise la fonction exec() avec la commande /bin/ping pour envoyer une requête ping à l'adresse IP spécifiée. Il vérifie l'état de sortie de la commande ping, qui est 0 en cas de succès et différent de zéro en cas d'échec. En fonction de l'état de sortie, il affiche le message approprié.

Cette approche est plus fiable et cohérente, garantissant que le résultat reflète avec précision l'état réel du ping.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn