Bonjour,
Y'a t'il un moyen(méthodes) en java pour récupérer automatiquement l'adresse IP et port du serveur Web.
Merci
Bonjour,
Y'a t'il un moyen(méthodes) en java pour récupérer automatiquement l'adresse IP et port du serveur Web.
Merci
Bonjour,
si tu connais un IP ou le HostName la class InetAddress retourne les adress IP
IndetAddress allIP [] = InetAddress.getAllByName(String host);
le paramatre host est un IP ou le hostName (ex: www.developpez.net).
récupére le hostName avec l'IP:
int i = 0;
String hostName = InetAddress.getByName(allIP[i]).getHostAddress();
Non, ça marche pas, il affiche rien:
InetAddress allIP[] = InetAddress.getAllByName("localhost");
String hostName =InetAddress.getByName(allIP[0].toString()).getHostAddress();
System.out.println(hostName);
Je doute s'il ya des méthodes qui peuvent nous communiquer directement adresse et port du serveur Web.
Mais, je vais continuer à chercher comme même.
Merci si qq1 à une idée
et ca ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 InetAddress allIP[]; String host []; try { allIP = InetAddress.getAllByName("221.252.100.22"); host = new String[allIP.length]; for (int g = 0; g< allIP.length ; g++) { host[g] = allIP[g].getHostAddress(); } for (int f = 0; f< host.length; f++){ System.err.println("-"+host[f] +"\t\t"+ allIP[f]); } } catch(Exception e){ e.printStackTrace();}
ça marche pas, depuis deux jours j'ai pas trouvé encore comment récupérer automatiquement en java l'adresse et port du serveur Web, si qq1 à une idée merci
Bonjour,
on va reprendre du début :
qu'est-ce que tu as comme infos sur "le serveur web" ?Envoyé par taouja
-son nom ?
-le réseau sur lequel il se trouve ?
En réponse au message privé :
Je ne sais pas si une telle bibliothèque existe,
mais ce que tu peux faire c'est un 'scan' du port 80
du réseau sur lequel tu recherches le serveur web
exemple :
réseau 192.168.0.0/24
1-ping des IP de 192.168.0.1 --> 192.168.0.254
si ping OK=> 2-test du port 80
port 80 ouvert =>tu as l'IP que tu cherches
(en tous cas IP d'un serveur web)
port 80 fermé =>continue boucle 1
a plus
c'est le masque :Envoyé par taouja
3 octets<=>24 bits<=>255.255.255.0
cela signifie que les adresses utilisables sont sur le dernier octet:
192.168.0.x
d'ou adresses possibles de 1 à 254
merci pour l'explication, par contre y'atil un moyen en java pour récupérer toutes les adresses IP des machine d'un réseau en java.
j'ai fait ça
il m'affiche seulement : localhost/127.0.0.1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public class fenetre { static void AllAdresses(String st) { try { InetAddress[] addresses = InetAddress.getAllByName(st); for (int i = 0; i < addresses.length; i++) { System.out.println(addresses[i]); } } catch (UnknownHostException ex) { System.out.println(st+"est inconnu"); } } public static void main(String arg[]){ AllAdresses("localhost"); } }
J'ai trouvé la fonction pour faire le ping c'est isReachable(int timeout), il suffit de connaitre ttes les adresses IP de mon réseau, je continue tjs à chercher. Si tu as une idée ou qq1 d'autre merci de me dire
Salut,
si tu appelles
avec st="localhost", il t'affiche toutes les Ip associées au nom
Code : Sélectionner tout - Visualiser dans une fenêtre à part InetAddress.getAllByName(st);
"localhost" , donc uniquement 127.0.0.1
je cite :
(vu sur http://www-igm.univ-mlv.fr/~roussel/...java.inet.html)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 # public static synchronized InetAddress[] getAllByName(String host_name) throws UnknownHostExeception Retourne un tableau d'objets contenant l'ensemble des adressses Internet de la machine qui répond au nom passé en paramètre.
pour ma part j'avais utilisé une boucle avec isReachable sur toutes les IP
possibles.
je vais récrire mon code en condensé et je le poste...
a plus
ok ça serai bien si tu metai ton code, pour voir comment tu récupère les adresses IP, faire un ping, et tester sur le port 80.
Merci
Salut,
j'ai essayé de faire des threads,
mais le code n'est sûrement pas optimisé..
toute correction sera bienvenue car je ne peux pas le tester
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 public class Scan_res_thr { public Scan_res_thr(String res) { String resa=res; String Ip; for (int i=1;i<254;i++){ Ip=resa+"."+i; Ping serveur=new Ping(Ip); } } class Ping extends Thread { private String ip; private Boolean rep; public Ping (String ip){ this.ip=ip; this.start(); } public void run(){ try{ rep=(InetAddress.getByName(ip).isReachable(3000)); if (rep==true){ System.out.println("adresse IP :"+ip+" attribuée\n"); System.out.println("test du port 80\n"); Test_port(ip); } else { System.out.println("adresse IP :"+ip+" non attribuée"); } } catch(Exception e){ System.out.println("erreur "+e); } } } public void Test_port(String ip){ String Ip=ip; try{ Socket sock=new Socket(Ip,80); System.out.println("port 80 ouvert sur IP :"+Ip); System.out.println("le serveur Web est à l'adresse IP :"+Ip); } catch(Exception d){ System.out.println("erreur "+d); System.out.println("port 80 fermé sur IP :"+Ip); } } public static void main(String args[]){ Scan_res_thr test=new Scan_res_thr("192.168.1"); } }
tout de suite moi-même![]()
Partager