Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2012, 14h22   #1
Membre à l'essai
 
Homme Thomas SCIOT
Technicien déploiement
Inscription : mars 2008
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Thomas SCIOT
Âge : 22
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Technicien déploiement

Informations forums :
Inscription : mars 2008
Messages : 26
Points : 22
Points : 22
Envoyer un message via MSN à Totof008
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 :
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 :
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
Totof008 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 14h39   #2
Membre du Club
 
Julien TANT
Inscription : janvier 2007
Messages : 82
Détails du profil
Informations personnelles :
Nom : Julien TANT
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 82
Points : 51
Points : 51
Envoyer un message via MSN à AoSiX
Salut,

Citation:
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
AoSiX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 14h46   #3
Membre à l'essai
 
Homme Thomas SCIOT
Technicien déploiement
Inscription : mars 2008
Messages : 26
Détails du profil
Informations personnelles :
Nom : Homme Thomas SCIOT
Âge : 22
Localisation : France, Ardennes (Champagne Ardenne)

Informations professionnelles :
Activité : Technicien déploiement

Informations forums :
Inscription : mars 2008
Messages : 26
Points : 22
Points : 22
Envoyer un message via MSN à Totof008
Donc en gros je remplace :

Code :
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
Totof008 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 12h40   #4
Invité régulier
 
Homme Mathieu Buis
Développeur informatique
Inscription : février 2012
Messages : 8
Détails du profil
Informations personnelles :
Nom : Homme Mathieu Buis
Âge : 21
Localisation : France, Corrèze (Limousin)

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

Informations forums :
Inscription : février 2012
Messages : 8
Points : 5
Points : 5
Envoyer un message via MSN à haanjoy Envoyer un message via Skype™ à haanjoy
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.
haanjoy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 01h32   #5
Nb
Candidat au titre de Membre du Club
 
Inscription : décembre 2003
Messages : 9
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 9
Points : 14
Points : 14
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.
Nb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h17.


 
 
 
 
Partenaires

Hébergement Web