je voudrais récupérer l'adresse ip du client qui se connecte au serveur,
voila comment j'ai procédé dans mon code,
// afficher l'ip du client ???
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 import java.io.*; import java.net.*; public class Serveur extends Object{ protected ServerSocket socketEcoute; protected Socket socketService; protected InputStream entreeSocket; protected OutputStream sortieSocket; // constructeur, créer un Serveur public Serveur(int numPort){ try{ //création du socket d'écoute (port numPort) socketEcoute = new ServerSocket(numPort); }catch (Exception ex){ // erreur de connexion System.err.println("Une erreur est survenue : "+ex); ex.printStackTrace(); } } // attente d'une connexion public void attenteConnexion(){ try{ // attente d'une demande de connexion socketService = socketEcoute.accept(); System.out.println("Nouvelle connexion : " + socketService); // pour test... // récupération des flux d'entrée/sortie de la socket de service entreeSocket = socketService.getInputStream(); sortieSocket = socketService.getOutputStream(); }catch (IOException ex){ // fin de connexion System.out.println("Une erreur est survenue : "+ex); ex.printStackTrace(); } } // methode qui retourne la chaine de caractere recue dans la socket ainsi que l'adresse de l'expéditeur, dans un // tableau de String, 1er element du tableau = adresse, 2eme element = message public String[] receptionMessage(){ String mess=""; String strIpClient=""; String tabMess[]=null; tabMess=new String[2]; try{ // on charge le contenu du scoket dans un BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(entreeSocket)); // on lit le contenu du buffer mess = br.readLine(); // afficher l'ip du client ??? InetAddress ipClient=socketService.getInetAddress(); strIpClient=ipClient.getHostAddress(); // System.out.println("reception message de "+strIpClient+" : "+mess); // on fait deja cette affichage dans l'appelant }catch (IOException ex){ // fin de connexion System.out.println("Une erreur est survenue : "+ex); ex.printStackTrace(); } tabMess[0]=strIpClient; tabMess[1]=mess; return tabMess; } ...
InetAddress ipClient=socketService.getInetAddress();
strIpClient=ipClient.getHostAddress();
Mais hélàs j'ai l'impression que c'est l'IP du serveur et non celle du client
que je récupère....
Partager