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
credo che si desidera utilizzare il remote address invece:
csocket.getRemoteSocketAddress().toString();
Utilizzare invece getRemoteSocketAddress()
.
Penso che si stia cercando il metodo getInetAddress dell'oggetto Socket.
che dà l'indirizzo locale del socket. Il server deve trovare l'indirizzo remoto dal suo punto di vista. –
@Stephen: secondo Javadoc, 'getInetAddress()' "restituisce l'indirizzo IP remoto a cui questo socket è connesso, oppure null se il socket non è connesso." – erickson
di questo codice:
String ip=(((InetSocketAddress) socket.getRemoteSocketAddress()).getAddress()).toString().replace("/","");
Come ottenere l'ip del client dall'oggetto HttpServer? vedere qui: http://stackoverflow.com/questions/25274828/get-client-ip-from-httpserver –