[JAVA/RESEAUX] pinger / Problème avec les flux

pinger / Problème avec les flux [JAVA/RESEAUX] - Programmation

Marsh Posté le 24-06-2002 à 12:19:20    

Salut :hello:  
 
Ca faisait longtemps!
 
Voilà j'ai le prog suivant :  
 
import java.net.*;
 
public class reseau1 {
 
 public static void main(String args[]) {
  InetAddress server;
  try {
   if (args.length > 0) {
    server = InetAddress.getByName(args[0]);
   }
   else {
    server = InetAddress.getLocalHost();
   }
   System.out.println(server);
  }
  catch (UnknownHostException pb) {
   System.out.println("Probleme : " + pb);
   
  }
 }
 
}
 
et je voudrais savoir comment la méthode va "chercher" l'adresse ip de la machine que je lui donne.
 
le prog va -t-il lire le fichier host de la machine local? Le prog lance t-il une recherche (genre MAC ou IP) sur le réseau? Ou est-ce encore autre chose?


Message édité par Roco le 29-06-2002 à 01:51:16

---------------
[:roco] Un chtit café et hop ça repart !
Reply

Marsh Posté le 24-06-2002 à 12:19:20   

Reply

Marsh Posté le 24-06-2002 à 12:42:32    

bin il fait une résolution tout à fait standard utilsant le DNS
 
host -> IP


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 24-06-2002 à 16:02:02    

DarkLord a écrit a écrit :

bin il fait une résolution tout à fait standard utilsant le DNS
host -> IP  




 
Ok.
 
Heu Dark tu pourrais me donner une piste plize!
 
Je voudrais pinger sur une machine avec un prog en java.


---------------
[:roco] Un chtit café et hop ça repart !
Reply

Marsh Posté le 24-06-2002 à 20:54:58    

:sweat:


---------------
[:roco] Un chtit café et hop ça repart !
Reply

Marsh Posté le 24-06-2002 à 22:13:12    

Roco a écrit a écrit :

 :sweat:  




 
sorry je te réponds demain si personne ne l'a encore fait ;)
 
A+


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 25-06-2002 à 07:05:18    

Re comme promis je te réponds avec un peu de retard désolé ;) Pour le méchanisme qui permet à InetAddress de récupérer l'ip sur base du nom il n'y a rien de sorcier. C'est le mécanisme utilisé par n'importe quel autre process de la machine à savoir l'accès au DNS qui eux meme te donnent accès à d'autre DNS pour les autres domaines.
 
Pour ton client ping, mon bouquin "Java Network Programming" répond à la question
 

Citation :


For the purpose of this client, we use the UDP "echo" service that many hosts support. This service simply echoes bach any packet that are received on port 7 (RFC 862) [...]


 
Selon moi cette solution n'est pas 100% sûre. Logiquement tu dois passer par ICMP mais pour cela tu dois utiliser un programme externe ou un Runtime, idée qui est confirmée sur un autre site
 

Citation :


Java includes support for UDP and TCP sockets. PING requires support for the Internet Control Message Protocol (ICMP). Your only choice (at the moment), is to use native code, or to use java.lang.Runtime to execute an external ping application. You won't be able to develop a 100% Pure implementation.
 
NB - A native implementation that uses the Java Native Interface (JNI) is available for PING, in both English and Spanish. See http://www.geocities.com/SiliconValley/Bit/5716/ping/ for more details.


 
J'ai le code du client qui ping via le service echo. C'est un mécanisme astucieux mais non standard. Si ca t'intéresse je vais essayer de le mettre quelque part (il est qd meme long)
 
Bonne chance  :hello:  
 


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 25-06-2002 à 08:32:10    

http://www.ping127001.com/pingpage.htm
y a une rubrique java avec 3 liens ...

Reply

Marsh Posté le 25-06-2002 à 14:57:17    

Thx les gars, je vais pouvoir avancer un peu plus ce soir!
 
Je me doutais bien que cela allait posé un pb car le protocole ICMP n'est pas implémenté dans JAVA et que l'utilisation d'UDP n'est qu'un contournement (habile?) du problème.
 
Enfin je regarde cela ce soir...


---------------
[:roco] Un chtit café et hop ça repart !
Reply

Sujets relatifs:

Leave a Replay

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