Ping une adresse IP en utilisant PHP et en écho le résultat
J'ai la fonction suivante que je ne fonctionne pas si loin. Je voudrais un ping sur une adresse IP, puis à l'écho si l'IP est vivant ou pas.
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";
}
}
Lorsque j'appelle cette fonction à l'aide de l'exemple:
pingAddress("127.0.0.1")
Écho, le résultat est toujours "mort" - n'importe quoi.
Quelqu'un pourrait s'il vous plaît aidez-moi où je vais mal?
Et/OU est-il une meilleure méthode de faire cela avec le même résultat?
Merci beaucoup.
Mise à jour: modification du code pour inclure les guillemets, mais toujours le même (mauvais) résultats.
source d'informationauteur Bernard
Vous devez vous connecter pour publier un commentaire.
REMARQUE: la Solution ci-dessous ne fonctionne pas sur Windows. Sur linux exec "qui de ping la commande" à partir de la console, et la commande set (chemin de la suggestion de l'appel exec) en conséquence
Je pense que vous voulez vérifier le statut de sortie de la commande, alors que shell_exec vous donne le plein de sortie (qui peut être dangereux est sortie de la commande de changement de commande d'une version à l'autre. pour une raison quelconque). De plus, votre variable $ip n'est pas interprété dans des guillemets simples. Vous devez utiliser le double "". Que peut-être la seule chose que vous devez corriger pour le faire fonctionner.
Mais je pense que code suivant peut être plus "portable". À mon humble avis il est en fait mieux pour attraper le statut de sortie, plutôt que d'essayer d'analyser chaîne de résultat. À mon humble avis il est également préférable de spécifier le chemin d'accès complet à la commande ping.
Cela aussi n'a pas de travail pour moi dans WordPress. J'ai aussi essayé -t et -n et d'autres moyens, mais n'a pas de travail. J'ai utilisé,
Cela a fonctionné parfaitement pour moi, enfin.
J'ai appelé ce de http://www.phpscriptsdaily.com/php/php-ping/
Espérons que cela aidera à
Eh bien, je veux modifier ce qu'il fonctionne très bien sur mon localhost, mais pas sur mon serveur live
Pour vivre le serveur, j'ai eu une autre chose, qui travaille maintenant pour à la fois locale ainsi que de vivre.
Puis-je montrer le Serveur est en hausse de 0 pour 1.
Cela fonctionne parfaitement pour moi. J'ai obtenu ce à partir de Ping site et le résultat de retour en PHP Merci @karim79
cela fonctionne très bien pour moi..
Pour Windows Utiliser cette classe
https://github.com/geerlingguy/Ping
Cela fonctionne très bien avec le nom d'hôte, le reverse IP (pour les réseaux internes) et de la propriété intellectuelle.
J'utilise cette fonction :
Faire vérifier les pages de manuel de votre commande ping avant d'essayer certains de ces exemples (toujours une bonne pratique de toute façon). Pour Ubuntu 16 (par exemple) la accepté de répondre ne fonctionne pas comme les
-n 3
échoue (ce n'est pas le nombre de paquets de plus,-n
dénote pas de la conversion de l'adresse IP à un nom d'hôte).Suite à la demande de l'OP, une alternative potentielle fonction serait comme suit:
J'ai développé l'algorithme de travailler avec hétérogène OS, Windows et Linux.
Mettre en œuvre la classe suivante: