クライアントPCは、イーサネット経由でソケットを介してサーバーPCとして接続されています。サーバー側のコードからこのクライアントのIPを見つけるにはどうすればよいですか。
サーバーは、新しいスレッドでクライアントごとに1つのソケットを使用しています。
クライアントソケットでcsocket.getLocalAddress().toString()
を実行しても、サーバーのIPアドレスが取得されます。 (csocket
は、サーバーが現在のクライアント接続で生成し、新しいスレッドに渡したソケットです)。
Socket オブジェクトの getInetAddress メソッドを探していると思います。
代わりに getRemoteSocketAddress()
を使用してください。
このコードを使用してください:
String ip=(((InetSocketAddress) socket.getRemoteSocketAddress()).getAddress()).toString().replace("/","");