[PHP] Ping d'un nom Netbios en PHP

Ping d'un nom Netbios en PHP [PHP] - PHP - Programmation

Marsh Posté le 24-06-2003 à 17:26:55    

Je voudrais savoir s'il existe une fonction ou une méthode pour pinguer un nom Netbios en PHP à partir d'un serveur apache monté sur un NT4. J'ai vu qu'il existe des fonctions pour pinguer des serveurs IMAP ou des bases de données SQL ou de cybercash, mais j'ai rien vu sur un simple ping de base pour voir si une machine est présente sur le réseau local ou pas.
 
Je ne tiens pas à utiliser les fonctions system() ou passtru() car elles sont souvent sources de trous de sécurité importants, et généralement il est préférable de désactiver leur appel via le fichier de conf php.
 
Alors est ce possible de ping un poste ?

Reply

Marsh Posté le 24-06-2003 à 17:26:55   

Reply

Marsh Posté le 24-06-2003 à 17:36:42    

il n'y a pas de fonction simple de ping en PHP ..... [:spamafote]  
c'est pour pinger une machine simple ou un autre serveur ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 24-06-2003 à 17:39:51    

Des machines de base utilisateur.
 
J'ai cherché dans le forum des réponses précédentes sur ce sujet, et je ne trouve des réponses qu'avec systeme, passthru ou exec.

Reply

Marsh Posté le 24-06-2003 à 17:43:17    

clair ..... ;)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 25-06-2003 à 02:27:21    

fsocketopen();
 
tu testes le port 139 ou 135 ...

Reply

Marsh Posté le 25-06-2003 à 11:06:16    

J'ai essayé la fonction fsockopen() comme tu dis mais j'obtiens des résulats curieux.
 
voilà la fonction en question :
 
int fsockopen ( string hostname , int port , int errno , string errstr , float
timeout )
 
Si le poste est dans le wins, et il pingue : j'ai un pointeur: c'est bon
Si le poste n'est pas dans le wins, et il ne pingue pas : j'ai pas de pointeur et une réponse à la fin du timeout précisé : c'est bon
Si le poste est dans le wins, et il ne pingue pas : la procédure ne répond rien, et ne respecte pas le timeout. Donc au bout d'un moment c'est php qui signale un timeout. Donc c'est pas bon.
 
Tu connais aussi ce probleme ?

Reply

Marsh Posté le 25-06-2003 à 14:58:11    

si le poste est pas pingable, bah tu peux rien faire là :/

Reply

Marsh Posté le 25-06-2003 à 15:16:37    

Skylight a écrit :

si le poste est pas pingable, bah tu peux rien faire là :/


 
Je dis pas qu'il est pas pingable, je dis qu'il est pas présentement pingable ( il est éteint ).
 
Y a trois cas :  
 
- il est allumé, donc il ping
- il est éteint mais connu, donc il ping pas, le message du ping est "délai dépassé", en plus il précise la derniere adresse ip attribuée par le dhcp
- il n'existe pas, ou n'a pas été démarré depuis longtemps, message "Hote inconnu"
 
ce que je dis c'est que les deux derniers cas devraient être traités de la même maniere par fsockopen, a savoir un test sur le port pendant le délai demandé puis réponse négative.  
 
Mais ce n'est pas le cas, car le délai du timeout n'est pas respectée si la machine existe mais n'est pas présentement joinable. Du coup la page php n'est jamais terminée, jusqu'au timeout final du moteur php.  
 
Or c'est précisement le but du ping de le savoir quand une machine est pas joinable.  

Reply

Marsh Posté le 25-06-2003 à 15:44:34    

et en mettant un timeout tres faible ?

Reply

Marsh Posté le 25-06-2003 à 16:44:02    

3 secondes en timeout ca me parait cohérent pour un ping.

Reply

Marsh Posté le 25-06-2003 à 16:44:02   

Reply

Marsh Posté le 25-06-2003 à 16:47:48    

1s c'est un max ...

Reply

Marsh Posté le 25-06-2003 à 17:16:06    

Je vois que tu geres pas des machines connectées par liaison satellite toa ...

Reply

Marsh Posté le 25-06-2003 à 17:33:18    

non clairement pas :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed