Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1476 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Vérifier si un serveur est online + afficher un texte si online

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Vérifier si un serveur est online + afficher un texte si online

n°230193
le_duc
PlaTyPuS
Posté le 18-10-2002 à 16:33:44  profilanswer
 

c'est possible ca ? j'y connais rien en PHP...
 
donc ce que j'aimerais pour ceux qui n'ont pas compris, c'est afficher le texte "Serveur Online" si le serveur est effectivement online --> pour cela il faut évidemment le vérifier avant... (mais est-ce possible ?)
 
merci.  :hello:

mood
Publicité
Posté le 18-10-2002 à 16:33:44  profilanswer
 

n°230195
ethernal
Chercheur de vérité...
Posté le 18-10-2002 à 16:37:03  profilanswer
 

fsockopen et www.php.net sont tes amis ;)
$fp= @fsockopen('http://adresse.net',...); //je connais plus trop les arguments
if ($fp){
  echo 'online';
}
else{
 echo 'offline';
}
@fclose($fp); //a vérifier


---------------
...oups kernel error...
n°230198
le_duc
PlaTyPuS
Posté le 18-10-2002 à 16:39:24  profilanswer
 

ethernal a écrit a écrit :

fsockopen et www.php.net sont tes amis ;)
$fp= @fsockopen('http://adresse.net',...); //je connais plus trop les arguments
if ($fp){
  echo 'online';
}
else{
 echo 'offline';
}
@fclose($fp); //a vérifier




 
et tu penses que ca marche aussi si c un FTP qu'il faut tester ?
 
merci.
 
PS: je pense que ca va être compliqué à réaliser...j'y connais rien rien rien en PHP  :D

n°230206
ethernal
Chercheur de vérité...
Posté le 18-10-2002 à 16:53:13  profilanswer
 

mais non... c'est bidon !
 

Code :
  1. <?
  2. function verif_ftp($addresse){
  3.   $fp= fsockopen ( $adresse, 21, $errno, $errstr, 30);
  4.   if ($fp){
  5.     echo 'FTP online';
  6.   }
  7.   else{
  8.     echo 'FTP offline';
  9.   }
  10.   fclose($fp);
  11. }
  12. //utilisation :
  13. verif_ftp('ftp.belnet.be');
  14. verif_ftp('ftp.test.net');
  15. ...
  16. ?>


---------------
...oups kernel error...
n°230207
le_duc
PlaTyPuS
Posté le 18-10-2002 à 16:55:50  profilanswer
 

ethernal a écrit a écrit :

mais non... c'est bidon !
 

Code :
  1. <?
  2. function verif_ftp($addresse){
  3.   $fp= fsockopen ( $adresse, 21, $errno, $errstr, 30);
  4.   if ($fp){
  5.     echo 'FTP online';
  6.   }
  7.   else{
  8.     echo 'FTP offline';
  9.   }
  10.   fclose($fp);
  11. }
  12. //utilisation :
  13. verif_ftp('ftp.belnet.be');
  14. verif_ftp('ftp.test.net');
  15. ...
  16. ?>






 
je peux copier-coller ce que tu m'as donnés en mettant les adresses FTP souhaités ?  :D

n°230210
ethernal
Chercheur de vérité...
Posté le 18-10-2002 à 16:59:19  profilanswer
 

oui ;)
 
si tes ftp ont des ports différents du '21', tu ajoutes un argument à la fonction, genre $port, et tu mets $port à la place de '21' dans la fonction fsockopen.
 
le 30 correspond au délais d'attente pour la réponse du serveur... ce qui peut ralentir fortement le temps d'affichage de la page.


---------------
...oups kernel error...
n°230215
le_duc
PlaTyPuS
Posté le 18-10-2002 à 17:02:40  profilanswer
 

ethernal a écrit a écrit :

oui ;)
 
si tes ftp ont des ports différents du '21', tu ajoutes un argument à la fonction, genre $port, et tu mets $port à la place de '21' dans la fonction fsockopen.
 
le 30 correspond au délais d'attente pour la réponse du serveur... ce qui peut ralentir fortement le temps d'affichage de la page.




 
je peux pas simplement remplacer le 21 par 1021 puisque le ftp en question est sur le port 1021.
 
Merci beaucoup beaucoup en tout cas! je vais tester!!!  :jap:  :jap:

n°230222
ethernal
Chercheur de vérité...
Posté le 18-10-2002 à 17:07:36  profilanswer
 

oui bien sûr, je disais juste ça pour le cas ou tu en aurais un sur le port 21, un autre sur le port 1000,...


---------------
...oups kernel error...
n°230226
le_duc
PlaTyPuS
Posté le 18-10-2002 à 17:17:31  profilanswer
 

ok  :jap: j'ai essayé...mais apparemment y'a un petit problème :
 
voilà ce que j'ai mis dans mon fichier ftp_online.php :
 

Code :
  1. <?
  2. function verif_ftp($addresse){
  3. $fp= fsockopen ( $adresse, 99, $errno, $errstr, 30);
  4. if ($fp){
  5.    echo 'FTP online';
  6. }
  7. else{
  8.    echo 'FTP offline';
  9. }
  10. fclose($fp);
  11. }
  12. //utilisation :
  13. verif_ftp('ftp://platypus.dtdns.net');
  14. verif_ftp('ftp://aaa:aaa@platypus.dtdns.net');
  15. ?>


 
et voilà ce qu'il me répond :
 

Code :
  1. FTP offline
  2. Warning: fclose(): supplied argument is not a valid File-Handle resource in d:\easyphp\www\ftp_online.php on line 10
  3. FTP offline
  4. Warning: fclose(): supplied argument is not a valid File-Handle resource in d:\easyphp\www\ftp_online.php on line 10


 
mon FTP est sur l'adresse suivante : ftp://platypus.dtdns.net PORT 99 --> il est ouvert!
 
et avec un accès "read" voilà l'adresse : ftp://aaa:aaa@platypus.dtdns.net:99 (avec le port inclu donc)
 
 
tu vois la source du problème ??

n°230228
ethernal
Chercheur de vérité...
Posté le 18-10-2002 à 17:22:36  profilanswer
 

'ai fait une tite faute de frappe ;)
$adresse avec 2 'd' partout
une fois qu'il les détecte correctement met un @ devant le fclose, ça évitera ce message d'erreur si le ftp est fermé.
 
 

Code :
  1. <? 
  2. function verif_ftp($addresse){ 
  3. $fp= fsockopen ( $addresse, 99, $errno, $errstr, 30); 
  4. if ($fp){ 
  5.   echo 'FTP online'; 
  6. else
  7.   echo 'FTP offline'; 
  8. fclose($fp); 
  9. //utilisation :  
  10. verif_ftp('ftp://platypus.dtdns.net'); 
  11. verif_ftp('ftp://aaa:aaa@platypus.dtdns.net');
  12. ?>


---------------
...oups kernel error...
mood
Publicité
Posté le 18-10-2002 à 17:22:36  profilanswer
 

n°230229
le_duc
PlaTyPuS
Posté le 18-10-2002 à 17:24:05  profilanswer
 

ethernal a écrit a écrit :

'ai fait une tite faute de frappe ;)
$adresse avec 2 'd' partout
une fois qu'il les détecte correctement met un @ devant le fclose, ça évitera ce message d'erreur si le ftp est fermé.
 
 

Code :
  1. <? 
  2. function verif_ftp($addresse){ 
  3. $fp= fsockopen ( $addresse, 99, $errno, $errstr, 30); 
  4. if ($fp){ 
  5.   echo 'FTP online'; 
  6. else
  7.   echo 'FTP offline'; 
  8. fclose($fp); 
  9. //utilisation :  
  10. verif_ftp('ftp://platypus.dtdns.net'); 
  11. verif_ftp('ftp://aaa:aaa@platypus.dtdns.net');
  12. ?>






 
ok, je reteste! c'est fou tout ce qu'on peut faire  :D !!!

n°230231
le_duc
PlaTyPuS
Posté le 18-10-2002 à 17:28:46  profilanswer
 

CA MARCHE!!!!!
 
t'es un génie!!! merci beaucoup  :jap:  :jap:  :jap:

n°230232
ethernal
Chercheur de vérité...
Posté le 18-10-2002 à 17:31:33  profilanswer
 

non non ;)
c'est toi qui a décidé de te mettre au PHP, et c'est une très bonne idée ! :lol:


---------------
...oups kernel error...
n°230237
le_duc
PlaTyPuS
Posté le 18-10-2002 à 17:43:59  profilanswer
 

ethernal a écrit a écrit :

non non ;)
c'est toi qui a décidé de te mettre au PHP, et c'est une très bonne idée ! :lol:




 
ouais! je VEUX absolument m'y mettre...jusqu'au 14 novembre je dois encore bosser mon travail de maturité...mais après ca cavachier! :D
 
encore 2 petites questions :
 
- Est-il possible de faire apparaître "FTP Online" en vert et "FTP Offline" en rouge ?
 
- Est-il possible de mettre la première partie du "script" dans un fichier et la deuxième ou on veut sur un page ?
 
Pour la 2e question, je pensais à ca :
 
Première partie :
 

Code :
  1. <? 
  2. function verif_ftp($addresse){ 
  3. $fp= fsockopen ( $addresse, 99, $errno, $errstr, 30); 
  4. if ($fp){ 
  5. echo 'FTP online'; 
  6. else
  7. echo 'FTP offline'; 
  8. fclose($fp); 
  9. }
  10. ?>


 
Et la 2e partie et bien on la fait apparaître sur les pages ou on en a besoin... La 2e partie serait donc le contrôle d'un ftp par exemple :
 

Code :
  1. <?
  2. verif_ftp('ftp.platypus.dtdns.net');
  3. ?>


 
Merci encore pour ton aide!!!


Message édité par le_duc le 18-10-2002 à 17:45:31
n°230257
ethernal
Chercheur de vérité...
Posté le 18-10-2002 à 18:20:09  profilanswer
 

en vert, ou en rouge : c'est de l'html, modifie le contenu de "echo".
echo '<font color="#55aa00">FTP online</font>' (idem pour rouge)
 
séparation du code :
ex fichier "fonction_ftp.php"

Code :
  1. <?   
  2. function verif_ftp($addresse){   
  3. $fp= fsockopen ( $addresse, 99, $errno, $errstr, 30);   
  4. if ($fp){   
  5. echo 'FTP online';   
  6. }   
  7. else{   
  8. echo 'FTP offline';   
  9. }   
  10. fclose($fp);   
  11. ?>


 
fichier "mes_ftp.php"

Code :
  1. <?
  2. include ('fonction_ftp.php');
  3. verif_ftp('ftp.platypus.dtdns.net');
  4. verif_ftp('ftp.blabla.net');
  5. ?>



---------------
...oups kernel error...
n°230258
le_duc
PlaTyPuS
Posté le 18-10-2002 à 18:22:51  profilanswer
 

ethernal a écrit a écrit :

en vert, ou en rouge : c'est de l'html, modifie le contenu de "echo".
echo '<font color="#55aa00">FTP online</font>' (idem pour rouge)
 
séparation du code :
ex fichier "fonction_ftp.php"

Code :
  1. <?   
  2. function verif_ftp($addresse){   
  3. $fp= fsockopen ( $addresse, 99, $errno, $errstr, 30);   
  4. if ($fp){   
  5. echo 'FTP online';   
  6. }   
  7. else{   
  8. echo 'FTP offline';   
  9. }   
  10. fclose($fp);   
  11. ?>


 
fichier "mes_ftp.php"

Code :
  1. <?
  2. include ('fonction_ftp.php');
  3. verif_ftp('ftp.platypus.dtdns.net');
  4. verif_ftp('ftp.blabla.net');
  5. ?>


 




 
ahah! okok! merci encore  :hello:

n°230262
le_duc
PlaTyPuS
Posté le 18-10-2002 à 18:34:30  profilanswer
 

ethernal a écrit a écrit :

oui ;)
le 30 correspond au délais d'attente pour la réponse du serveur... ce qui peut ralentir fortement le temps d'affichage de la page.




 
à ce propos, c'est en seconde ? pasque si le script doit juste vérifier si le FTP est ouvert ou pas, je peux mettre 5 seconde non ?

n°230265
ethernal
Chercheur de vérité...
Posté le 18-10-2002 à 18:42:14  profilanswer
 

oui c'est en seconde, ça dépend de la rapidité de ta connexion et de celle serveur, mais 5 devrait marcher.
Si tu remarques trop de serveur down alors qu'ils sont onlines, augmente la valeur


---------------
...oups kernel error...
n°230282
le_duc
PlaTyPuS
Posté le 18-10-2002 à 19:42:07  profilanswer
 

bon...j'ai déjà trop abusé de ta bonté  :jap: , mais j'ai pas compris ce que t'as expliqué si il y avait plusieurs ports...j'ai remarqué que j'avais quand même 1-2 FTP a contrôler qui ne sont pas sur le port 1021...et qui ont des ports différents.

n°230668
ethernal
Chercheur de vérité...
Posté le 19-10-2002 à 09:08:00  profilanswer
 

hum... relis le code et comprends le un peu ;)
la notion de paramètre ($addresse est un paramètre/argument)
->> function verif_ftp($addresse,$port){
//appel d'une fonction
-->> fsockopen($addresse,$port,...);
"echo" permet d'afficher
if (condition){
  //commandes
}
else{
//commandes
}


---------------
...oups kernel error...
n°230684
le_duc
PlaTyPuS
Posté le 19-10-2002 à 10:53:25  profilanswer
 

ethernal a écrit a écrit :

hum... relis le code et comprends le un peu ;)
la notion de paramètre ($addresse est un paramètre/argument)
->> function verif_ftp($addresse,$port){
//appel d'une fonction
-->> fsockopen($addresse,$port,...);
"echo" permet d'afficher
if (condition){
  //commandes
}
else{
//commandes
}




 
ouais ok...mais dans la 2e partie, il ira chercher ou le port ???
 

Code :
  1. <?
  2. include ('fonction_ftp.php');
  3. verif_ftp('platypus.dtdns.net'); 
  4. verif_ftp('ftp.blabla.net'); 
  5. ?>

n°230719
ethernal
Chercheur de vérité...
Posté le 19-10-2002 à 12:22:47  profilanswer
 

si tu donnes un paramètre de plus à ta fonction, tu dois lors de l'appel le spécifier aussi :
ex:  
function hello($arg_texte1, $arg_numerique2, $arg_texte3='test';){
//blabla
}
 
//appel :
hello('mon_argument1',25,'testons';);  
hello('blabla',25); //dans ce cas, comme le dernier argument n'est pas spécifier, il prends celui par défaut, cad 'test'


---------------
...oups kernel error...
n°230728
le_duc
PlaTyPuS
Posté le 19-10-2002 à 12:41:16  profilanswer
 

ethernal a écrit a écrit :

si tu donnes un paramètre de plus à ta fonction, tu dois lors de l'appel le spécifier aussi :
ex:  
function hello($arg_texte1, $arg_numerique2, $arg_texte3='test';){
//blabla
}
 
//appel :
hello('mon_argument1',25,'testons';);  
hello('blabla',25); //dans ce cas, comme le dernier argument n'est pas spécifier, il prends celui par défaut, cad 'test'
 




 
bon c'est combien des cours privés ? j'habite en Suisse, près de Fribourg  :D  :D  :lol:  
 
merci encore.

n°230751
ethernal
Chercheur de vérité...
Posté le 19-10-2002 à 13:22:20  profilanswer
 

:lol: :lol: je pense pas que je sois un bon prof :D
a+


---------------
...oups kernel error...
n°231763
le_duc
PlaTyPuS
Posté le 21-10-2002 à 13:18:06  profilanswer
 

encore une petite question  ;) :
 
Avec cette fonction on sait si le FTP est online ou offline, mais y'a-t-il une fonction qui permette de voir si le FTP est complet ou pas ? Ca serait grave intéressant ca  :ouch:  :ouch:

n°231802
le_duc
PlaTyPuS
Posté le 21-10-2002 à 13:51:33  profilanswer
 

:bounce:

n°231808
ethernal
Chercheur de vérité...
Posté le 21-10-2002 à 13:53:47  profilanswer
 

complet ?
tu veux dire qu'il n'y aurait plus de place dessus pour uploader ?
S'il te donne ces infos lors de la connexion, oui il y a sans doute moyen d'extraire le résultat... mais c'est plus compliqué puisque tu dois connaitre le protocol ftp (envoi et réception de données).  je pense qu'il y a des fonctions existante en php qui devrait te permettre de communiquer facilement avec le serveur mais j'y connais rien là :(
 
tu dois consulter les rfc sur le protocole ftp et regarder la doc sur www.php.net


---------------
...oups kernel error...
n°231826
le_duc
PlaTyPuS
Posté le 21-10-2002 à 14:24:30  profilanswer
 

ethernal a écrit a écrit :

complet ?
tu veux dire qu'il n'y aurait plus de place dessus pour uploader ?
S'il te donne ces infos lors de la connexion, oui il y a sans doute moyen d'extraire le résultat... mais c'est plus compliqué puisque tu dois connaitre le protocol ftp (envoi et réception de données).  je pense qu'il y a des fonctions existante en php qui devrait te permettre de communiquer facilement avec le serveur mais j'y connais rien là :(
 
tu dois consulter les rfc sur le protocole ftp et regarder la doc sur www.php.net




 
non en fait des fois sur certains ftp, il y a un nombre maxi d'utilisateurs qui peuvent se connecter à la fois...--> dans quel cas le serveur retourne l'erreur 421 "Too many users, please try again later"
 
j'aurais aimé savoir si on pouvait faire ca facilement avec PHP --> je vais aller voir sur php.net.


Message édité par le_duc le 21-10-2002 à 15:25:25
n°231856
ethernal
Chercheur de vérité...
Posté le 21-10-2002 à 15:20:55  profilanswer
 

ça fait longtemps que j'ai plus down de ftp :D
Est-ce que tu dois te logguer pour avoir cette réponse ? si oui, chaque fois que qq va lancer ton script, il va occuper un user sur le serveur, ce qui fait que les résultats seront faussés et tu occuperas des users inutilement.


---------------
...oups kernel error...
n°231862
le_duc
PlaTyPuS
Posté le 21-10-2002 à 15:26:47  profilanswer
 

ben en fait je sais pas si on doit se logger pour le savoir...ce qui est sûr, c'est qu'en se loggant, il nous le dit...maintenant je sais pas si on peut le savoir sans se logger...  :pt1cable:  
 
merci quand même! @++

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Vérifier si un serveur est online + afficher un texte si online

 

Sujets relatifs
[PHP] Générer des pages html... explications svp ???Post d'un form côté serveur
[ PHP ] erreur incorrigible ^_^[Java] Comment faire afficher une JComboBox sur plusieurs lignes
Apache + PHP + oracle sous windows[PHP] remplacer une chaine de caractères dans un .ini [resolu]
Cherche un Développeur PHP passioné de JV pour Site Xbox :)[PHP] Si tu trouves pas mon include dis le moi !!!
[PHP]Problème avec fonction de recherche 
Plus de sujets relatifs à : [PHP] Vérifier si un serveur est online + afficher un texte si online


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR