2009-12-03 13 views
20

Il mio PC client è connesso a come PC server tramite prese su Ethernet, Come trovo l'IP di questo client dal codice lato server.
Il server sta scaricando un socket per client in una nuova discussione.
Quando faccio uno csocket.getLocalAddress().toString() sul socket client, ottengo ancora l'indirizzo IP del server. (csocket è il socket che il server ha generato su una connessione ora client e lo ha passato a una nuova discussione).Come trovare l'indirizzo IP del client connesso al server?

risposta

42

credo che si desidera utilizzare il remote address invece:

csocket.getRemoteSocketAddress().toString(); 
+0

Come ottenere l'ip del client dall'oggetto HttpServer? vedere qui: http://stackoverflow.com/questions/25274828/get-client-ip-from-httpserver –

12

Penso che si stia cercando il metodo getInetAddress dell'oggetto Socket.

+0

che dà l'indirizzo locale del socket. Il server deve trovare l'indirizzo remoto dal suo punto di vista. –

+11

@Stephen: secondo Javadoc, 'getInetAddress()' "restituisce l'indirizzo IP remoto a cui questo socket è connesso, oppure null se il socket non è connesso." – erickson

1

di questo codice:

String ip=(((InetSocketAddress) socket.getRemoteSocketAddress()).getAddress()).toString().replace("/",""); 
Problemi correlati