如何在java中获取已连接客户端的主机名?

sha*_*awn 4 java sockets networking hostname

我正在编写一个服务器应用程序,我想获取连接客户端的主机名,我将如何在java中执行此操作?

clientSocket.getInetAddress().getHostName() 不断给我IP地址而不是主机名,这有什么不对?

其中ClientSocket是一个SSLSocketSocket.

zie*_*mer 6

请尝试getCanonicalHostName()- 但请阅读Javadoc,因为这不能保证.(您仅限于在DNS中注册的内容等)

  • 这可能会成为超出SO范围的网络问题.如果您尝试从命令行运行"nslookup <感兴趣的IP地址>",它是否有效?如果没有,您也不能指望Java为您解决它.当您说您在特定计算机上设置主机名时 - 它与您运行此应用程序的计算机不同,是吗?如果不是,则IP需要由系统反向解析 - 使用主机文件,DNS或其他解析机制. (2认同)