2011-12-23 76 views
4

我正在编写一个服务器应用程序,我想获取连接客户端的主机名,我将如何去在java中做这件事?如何在java中获取连接客户端的主机名?

clientSocket.getInetAddress().getHostName()一直给我的IP地址,而不是主机名,怎么了?

其中ClientSocketSSLSocketSocket.

回答

6

尝试getCanonicalHostName()代替 - 但是阅读的Javadoc,因为这是不能保证。 (你只限于在DNS中注册的内容等)

+0

我仍然得到了IP地址,而给出了什么?我将计算机上的主机名设置为特定名称,但似乎无法识别,我有多个网络适配器,它是否有所作为? – shawn 2011-12-23 06:48:22

+2

这可能会成为SO以外的网络问题。如果您尝试从命令行运行“nslookup <感兴趣的IP地址>”,它是否工作?如果没有,你也不能指望Java为你解决它。当你说你在一台特定的计算机上设置主机名时 - 它与运行此应用程序的计算机不同,是吗?如果不是,则IP需要被系统反向解析 - 使用主机文件,DNS或其他解析机制。 – ziesemer 2011-12-23 06:51:27

+0

好吧我改变了主机文件,现在一切都好了 – shawn 2011-12-23 09:09:47

相关问题