在java中获取远程tcp连接的ip地址?

时间:2012-04-24 03:40:35

标签: java networking tcp ip

我使用了众所周知的优秀Knock Knock server tutorial作为学习java网络的方法。我试图使用socket.getInetAddress()找出连接客户端的IP地址,但它总是返回我的路由器的IP,192.168.1.254,大概是因为连接正在那里反弹。有没有办法获得连接到tcp套接字的远程客户端的正确ip?

1 个答案:

答案 0 :(得分:3)

试试这个:

ServerSocket sSock;
Socket cSock;

sSock = new ServerSocket(port_number);
clientSocket = sSock.accept();
System.out.println(cSock.getRemoteSocketAddress()+" connected\n");

它会打印连接客户端的整个套接字地址,如下所示:

  

/127.0.0.1:1878已连接