[Java]Obtenir l'IP d'un client

Obtenir l'IP d'un client [Java] - Java - Programmation

Marsh Posté le 11-04-2007 à 01:42:26    

Hello,
 
est-ce que quelqu'un pourrait m'indiquer comment obtenir l'IP du client qui s'est connecté sur un serveur.
 
Merci

Reply

Marsh Posté le 11-04-2007 à 01:42:26   

Reply

Marsh Posté le 11-04-2007 à 09:54:56    

lasvegastheking a écrit :

Hello,
 
est-ce que quelqu'un pourrait m'indiquer comment obtenir l'IP du client qui s'est connecté sur un serveur.
 
Merci


si le serveur utilise des sockets avec socket le nom de la variable :)

Code :
  1. socket.getInetAddress().getHostAddress()


retourne l'IP sous forme de String

Reply

Marsh Posté le 12-04-2007 à 12:01:05    

kev_59 a écrit :

si le serveur utilise des sockets avec socket le nom de la variable :)

Code :
  1. socket.getInetAddress().getHostAddress()


retourne l'IP sous forme de String


Salut,
 
pour le port, ça s'obtient comment ?
Dans la classe Serveur, j'ai écrit ceci :

Code :
  1. String adresseClient(){
  2.     String chaine = client_socket.getInetAddress().getHostAddress() + " " + client_socket.getLocalPort();
  3.     return chaine;
  4.     }


Mais ça me donne le port du serveur et non celui du client


Message édité par lasvegastheking le 12-04-2007 à 12:01:45
Reply

Marsh Posté le 12-04-2007 à 12:20:46    

pour cause, c'est ce que tu écris ...
RTFM

Reply

Marsh Posté le 12-04-2007 à 13:04:55    

Taz a écrit :

pour cause, c'est ce que tu écris ...
RTFM


J'ai remplacé par getPort() et ça donne un port différent.
J'explique ce que je fait.
Je travaille en local.
Un client lance une requete vers un serveur 127.0.0.1 2000
Le serveur fait appel à la méthode adresseClient() et indique :
le client qui m'a contacte est : 127.0.0.1 2524
Ensuite le serveur dont le port est 2000 envoie une requete au serveur 127.0.0.1 3000 qui indique :
le client qui m'a contacte est : 127.0.0.1 2987
 
Ce que je souhaiterai avoir, c'est que le serveur 127.0.0.1 3000 indique que le client qui l'a contacté est :
127.0.0.1 2000
 
ESt-ce que c'est possible d'avoir ça lorsqu'on travaille en local ?
Si c'est le cas, comment est-ce qu'il faut que je m'y prenne.
 
PS : les serveurs sont aussi clients

Reply

Marsh Posté le 14-04-2007 à 01:29:39    

Si je me souviens bien de mon cours (je débute aussi en Java :P), le socket retourner lorsqu'une connexion est détectée dans <ServerSocket>.accept(), ce socket est connecté sur un port aléatoire. Ce ne sera jamais le même d'une connexion à l'autre. Me trompe-je?
 
Sinon, merci. Je crois avoir trouvé la solution à mon problème pour récupérer l'adresse du client qui s'est connecté sur mon serveur. <socket>.getInetAddress() ne fonctionne pas tout seul si j'ai bien vu. Il faut lui ajouter .getHostAddress(). :) Je vais tester plus tard, pour l'instant je suis à fond en PL/SQL! :o

Reply

Sujets relatifs:

Leave a Replay

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