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