Vérifier si un serveur est online + afficher un texte si online [PHP] - PHP - Programmation
Marsh Posté le 18-10-2002 à 16:37:03
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
Marsh Posté le 18-10-2002 à 16:39:24
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
Marsh Posté le 18-10-2002 à 16:53:13
mais non... c'est bidon !
Code :
|
Marsh Posté le 18-10-2002 à 16:55:50
ethernal a écrit a écrit : mais non... c'est bidon !
|
je peux copier-coller ce que tu m'as donnés en mettant les adresses FTP souhaités ?
Marsh Posté le 18-10-2002 à 16:59:19
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.
Marsh Posté le 18-10-2002 à 17:02:40
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!!!
Marsh Posté le 18-10-2002 à 17:07:36
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,...
Marsh Posté le 18-10-2002 à 17:17:31
ok j'ai essayé...mais apparemment y'a un petit problème :
voilà ce que j'ai mis dans mon fichier ftp_online.php :
Code :
|
et voilà ce qu'il me répond :
Code :
|
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 ??
Marsh Posté le 18-10-2002 à 17:22:36
'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 :
|
Marsh Posté le 18-10-2002 à 17:24:05
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é.
|
ok, je reteste! c'est fou tout ce qu'on peut faire !!!
Marsh Posté le 18-10-2002 à 17:31:33
non non
c'est toi qui a décidé de te mettre au PHP, et c'est une très bonne idée !
Marsh Posté le 18-10-2002 à 17:43:59
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 ! |
ouais! je VEUX absolument m'y mettre...jusqu'au 14 novembre je dois encore bosser mon travail de maturité...mais après ca cavachier!
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 :
|
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 :
|
Merci encore pour ton aide!!!
Marsh Posté le 18-10-2002 à 18:20:09
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 :
|
fichier "mes_ftp.php"
Code :
|
Marsh Posté le 18-10-2002 à 18:22:51
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"
|
ahah! okok! merci encore
Marsh Posté le 18-10-2002 à 18:34:30
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 ?
Marsh Posté le 18-10-2002 à 18:42:14
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
Marsh Posté le 18-10-2002 à 19:42:07
bon...j'ai déjà trop abusé de ta bonté , 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.
Marsh Posté le 19-10-2002 à 09:08:00
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
}
Marsh Posté le 19-10-2002 à 10:53:25
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 :
|
Marsh Posté le 19-10-2002 à 12:22:47
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'
Marsh Posté le 19-10-2002 à 12:41:16
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
merci encore.
Marsh Posté le 19-10-2002 à 13:22:20
je pense pas que je sois un bon prof
a+
Marsh Posté le 21-10-2002 à 13:18:06
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
Marsh Posté le 21-10-2002 à 13:53:47
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
Marsh Posté le 21-10-2002 à 14:24:30
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.
Marsh Posté le 21-10-2002 à 15:20:55
ça fait longtemps que j'ai plus down de ftp
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.
Marsh Posté le 21-10-2002 à 15:26:47
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...
merci quand même! @++
Marsh Posté le 18-10-2002 à 16:33:44
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.