web-dev-qa-db-ja.com

サーバーに接続されているクライアントのIPアドレスを見つける方法

クライアントPCは、イーサネット経由でソケットを介してサーバーPCとして接続されています。サーバー側のコードからこのクライアントのIPを見つけるにはどうすればよいですか。
サーバーは、新しいスレッドでクライアントごとに1つのソケットを使用しています。
クライアントソケットでcsocket.getLocalAddress().toString()を実行しても、サーバーのIPアドレスが取得されます。 (csocketは、サーバーが現在のクライアント接続で生成し、新しいスレッドに渡したソケットです)。

25
Kevin Boyd

Socket オブジェクトの getInetAddress メソッドを探していると思います。

12
Alex Shnayder

代わりに getRemoteSocketAddress() を使用してください。

4
erickson

このコードを使用してください:

String ip=(((InetSocketAddress) socket.getRemoteSocketAddress()).getAddress()).toString().replace("/","");
3
Ahmad Aghazadeh