IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Faire un ping en PHP


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Technicien Supérieur en Support Informatique
    Inscrit en
    Juin 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Supérieur en Support Informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 41
    Par défaut Faire un ping en PHP
    Bonsoir à tous je cherche depuis un bon moment un moyen de testé l'état d'un serveur distant, un simple ping suffirai... mais la complexité c'est de le faire en php...

    J'ai réussi à obtenir une parti de code mais le problème c'est que ca me dit toujours OK, même si le serveur n'existe pas -_-...

    Pourriez vous m'aider à améliorer mon problème ou même me donné une autre solution si je suis dans la mauvaise direction ? ^^

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <?php
    echo ("Etat des serveurs <br>");
     
    $serveur1="195.27.0.130";
    $serveur2="www.adressebidon.com";
     
    $ping=exec ('/bin/ping -c2 -q -w2 '.$serveur1.' | grep transmitted | cut -f3 -d"," | cut -f1 -d"," | cut -f1 -d"%"');
    if ($ping==0)
    echo ("Serveur $serveur1 OK :)<br><br>");
    else
    echo ("Serveur $serveur1 HS :(<br><br>");
     
    $ping=exec ('/bin/ping -c2 -q -w2 '.$serveur2.' | grep transmitted | cut -f3 -d"," | cut -f1 -d"," | cut -f1 -d"%"');
    if ($ping==0)
    echo ("Serveur $serveur2 OK :)<br><br>");
    else
    echo ("Serveur $serveur2 HS :(<br><br>");
     
    ?>
    Je vous remercie d'avance, Cordialement

    Ps: j'avais aussi essayer des codes que j'ai trouver mais ça ne fonctionne pas comme je le désire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    $fp = fsockopen("195.27.0.130", 80, &$errno, &$errstr, 30);
    if(!$fp)
    {
     print"HS";
    } else {
     print"OK";
    }
    ?>
    ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    $ping = "ping -a -n 1";
    $ip = "195.27.0.130";
    $result = "";
     
    system ($ping $ip > $result);
     
    ?>

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 21
    Par défaut
    Quelle distribution de Linux utilises-tu ?

    Sous Debian, je me suis servi de la commande Ping pour évaluer la latence et la vitesse d'une connexion.
    Comme toi, avec un simple exec('ping', $output).
    En comparant nos 2 codes, la différence est dans le test de la fonction, je me suis servi de count($output)>2 à la place de if ($ping==0);

    p'etre que ça peut t'aider, la class de ping et de parse du resultat est ici ->
    http://www.fobec.com/CMS/web/php/exe...aine_1084.html

  3. #3
    Membre actif
    Homme Profil pro
    Technicien Supérieur en Support Informatique
    Inscrit en
    Juin 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Supérieur en Support Informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 41
    Par défaut
    Merci de ta réponse mais malheuresement j'y suis depuis ce matin mais je n'y arrive pas , que ça soit avec ton lien ou ta méthode : nada

    Mon dernier test est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?php
    echo ("Etat des serveurs <br>");
    echo ("<br>");
     
    $ping='ping';
    $serveur1="www.adressebidon.com";
    $serveur2="195.27.0.130";
     
    exec ($ping.$serveur1, $etat1);
     
    if (count($etat1)>2)
    echo ("Serveur $serveur1 OK :)<br><br>");
    else
    echo ("Serveur $serveur1 HS :(<br><br>");
     
    exec ($ping.$serveur2, $etat2);
     
    if (count($etat2)>2)
    echo ("Serveur $serveur2 OK :)<br><br>");
    else
    echo ("Serveur $serveur2 HS :(<br><br>");
     
    ?>
    En fait le but de tout ça c'est simplement d'avoir l'état d'un serveur sur une page hébergé sur un ftp (free en l'occurrence)... c'est tout... (je sais que ca se fait je connais un site qui le fait...)

    C'est pour cela que j'avais pensé au ping mais si quelqu'un à une autre solution je suis preneur...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 21
    Par défaut
    peux-tu m'en dire plus, as-tu accès à la fonction ping ou la réponse est mauvaise ?

    Pour tester l'état d'un serveur, on peut le faire avec la fonction fopen.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $handle = @fopen("http://www.fobec.com/", "r");
    if ($handle) {
        echo 'ok';
    } else {
        echo 'down';
    }
    ?>

  5. #5
    Membre actif
    Homme Profil pro
    Technicien Supérieur en Support Informatique
    Inscrit en
    Juin 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Supérieur en Support Informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 41
    Par défaut
    Merci Fobec, je ne l'avais précisé mais j'avais déjà tester cette fonction également.
    Sur mon ftp, le fopen fonctionne si je veux ouvrir/édite/MAJ un fichier héberger dessus, mais par contre ca ne fonctionne pas si je met un URL.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $fichier = "Ligne.txt";
    $Ligne = "blabla";
     
    $update = fopen($fichier,'a+');
    fputs ($update,$Ligne."\n");
    fclose($update);
     
    ?>
    Lorsque je met un URL, ca n'exécute pas la page php, et fait comme si je voulais enregistrer un fichier, "enregistrer xxx.php"...

    Et Lorsque je met un ip, à la place de l'URL ca me met :
    Warning: fopen(195.27.0.130) [function.fopen]: failed to open stream: No such file or directory in /mnt/140/sdc/d/1/

    Donc j'en conclu que le ftp free que j'utilise n'a pas cette fonction de php activé et comme je n'es pas accès à la config (logique), j'avais abandonné cette idée. C'est pourquoi j'essayais de me diriger vers un ping...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 21
    Par défaut
    une seule solution semble fonctionner: fsockopen et test avec triple =
    Est-ce que ça marche aussi chez toi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    $socket = @fsockopen("www.google.com", 80);
    if ($socket === false) {
        echo "failed";
    } else {
        echo 'ok';
    } 
    ?>

Discussions similaires

  1. faire un ping en ssh2 via php
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 18/05/2011, 10h25
  2. Comment faire un Ping sous (x)html ou php
    Par Claude URBAN dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 18/12/2010, 18h10
  3. [Librairie] [TELNET] Faire du telnet en PHP sur un serveur distant
    Par kaboume dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 10/06/2010, 14h24
  4. question bête faire un ping en php
    Par micker dans le forum Langage
    Réponses: 6
    Dernier message: 05/11/2009, 15h48
  5. Faire cohabiter ASP et PHP sur une même DB
    Par freud dans le forum Général Conception Web
    Réponses: 12
    Dernier message: 12/10/2005, 17h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo