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 :

Executer un ping dans une page php


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Technicien déploiement
    Inscrit en
    Mars 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien déploiement

    Informations forums :
    Inscription : Mars 2008
    Messages : 26
    Points : 29
    Points
    29
    Par défaut Executer un ping dans une page php
    Bonjour tout le monde,

    Avant de vous expliquer mon problème je tiens juste a préciser que je ne connais presque rien en php, j'en ai fais un peut en cours mais j'ai perdu casie tout, mon domaine c'est plutôt le réseau.

    Brefouille, donc j'aimerais bien faire un script en php qui ping un certain nombre de machine qui sont dans mon réseau local ( 3 serveurs et 4 ou 5 clients ) et qui les affiches dans la page dans un tableau par exemple avec des petites icônes par exemple.

    Après quelques recherche sur internet je suis arriver a ça

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php 
    $time_start = microtime(); 
    if(@fsockopen("192.168.1.100",80,$errno, $errstr, 5) ) 
    { 
    $time_end = microtime(); 
    $ping = round(($time_end - $time_start) * 1000); 
    if($ping <= 50) echo 'Etat de Arya :'.'<img src="vert.GIF"/>'."\n"." Arya est ONLINE. <br><br> - Bon débit !! <br> <br> - PING : "; 
    if($ping > 50 AND $ping <= 200) echo 'Etat de Arya :'.'<img src="orange.GIF"/>'."\n"."Arya est ONLINE.<br><br> - Bande passante moyenne<br> <br> - Voici le PING : "; 
    if($ping > 200) echo 'Etat de Arya :'.'<img src="rouge.GIF"/>'."\n"."Arya est ONLINE. <br><br> - Beaucoup de traffic !! <br> <br> - Voici le PING : "; 
    } 
    else 
    { 
    echo '<img src="eteint.GIF"/>'."Arya est OFFLINE !!</br></br></br>"; 
    } 
     
    echo '</td><td align="center" bgcolor="#FFFFFF">'."\n"; 
    echo '</td></tr>'."\n"; 
     
    $time_start = microtime(); 
    if(@fsockopen("192.168.1.101",80,$errno, $errstr, 5) ) 
    { 
    $time_end = microtime(); 
    $ping = round(($time_end - $time_start) * 1000); 
    if($ping <= 50) echo 'Etat de Horus :'.'<img src="vert.GIF"/>'."\n"." Horus est ONLINE. <br><br> - Bon débit !! <br> <br> - PING : "; 
    if($ping > 50 AND $ping <= 200) echo 'Etat de Horus :'.'<img src="orange.GIF"/>'."\n"."Horus est ONLINE.<br><br> - Bande passante moyenne<br> <br> - Voici le PING : "; 
    if($ping > 200) echo 'Etat de Horus :'.'<img src="rouge.GIF"/>'."\n"."Horus est ONLINE. <br><br> - Beaucoup de traffic !! <br> <br> - Voici le PING : "; 
    } 
    else 
    { 
    echo '<img src="eteint.GIF"/>'."Horus est OFFLINE !!</br></br></br>"; 
    } 
     
    echo '</td><td align="center" bgcolor="#FFFFFF">'."\n"; 
    echo '</td></tr>'."\n";
    Le seul soucis dans mon code c'est qu'il me donne les bonne réponse uniquement si le serveur fais serveur web, je pense que ça viens de cette fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(@fsockopen("192.168.1.100",80,$errno, $errstr, 5) )
    Mais je ne vois pas comment changer si c'est bien ça qui pose problème.


    J'ai vue aussi http://search.cpan.org/~smpeters/Net...ib/Net/Ping.pm qui le ferais apparemment mais je ne sais pas trop non plus.


    Quelqu'un pourrais me donner de l'aide?

    Cordialement Totof

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 85
    Points : 71
    Points
    71
    Par défaut
    Salut,

    Le seul soucis dans mon code c'est qu'il me donne les bonne réponse uniquement si le serveur fais serveur web, je pense que ça viens de cette fonction
    En effet, c'est juste. Etant donné qu'apache ( par défaut ) utilise le port 80, ta requête ne marche que si une application répond au port 80...

    Je te propose de regarder ce script : http://www.php.net/manual/fr/functio...ate.php#101012

    c'est le meilleur moyen de faire un ping

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Technicien déploiement
    Inscrit en
    Mars 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Technicien déploiement

    Informations forums :
    Inscription : Mars 2008
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Donc en gros je remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(@fsockopen("192.168.1.100",80,$errno, $errstr, 5) )
    par la fonction que tu ma montrer?

    Le soucis par contre c'est que comme j'ai dis juste avant, je ne suis pas douer en php, donc pour l'adapter

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Salut,

    Si j'ai bien compris la démarche d'AoSiX, il te propose un script qui permettra au tien d'accepter la connexion avec un serveur, même si celui ci n'est pas un server web.

  5. #5
    Nb
    Nb est déconnecté
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 149
    Points : 421
    Points
    421
    Par défaut
    Ton script initial n'effectue absolument pas un ping. Comme le dit AoSiX, il verifie uniquement qu'une application écoute le port 80 sur la machine que tu essayes d'atteindre.

    Un ping utilise la commande ECHO du protocole ICMP qui si mes souvenirs sont bons est une couche en dessous de TCP ou UDP. La notion de port n'existe pas à ce niveau. Vue le prototype de la fonction fsocketopen je pense qu'il est impossible de l'utiliser pour faire des ping et que la solution est , comme indiqué par AoSiX, d'utiliser la librairie socket qui elle devrait te permettre de forger une requête ICMP sans trop de soucis.

Discussions similaires

  1. [Système] Executer un script CGI dans une page php
    Par RadicalBob dans le forum Langage
    Réponses: 1
    Dernier message: 25/04/2007, 17h46
  2. [Système] executer commande ssh dans une page php
    Par marielaure2805 dans le forum Langage
    Réponses: 2
    Dernier message: 19/10/2006, 10h05
  3. [Configuration] Inclure un fichier .c dans une page PHP
    Par Korma dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 18/01/2006, 12h49
  4. Réponses: 11
    Dernier message: 11/03/2005, 17h41
  5. problème debodybackground dans une page php
    Par bertrand_declerck dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/02/2005, 22h39

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