4
我正在編寫一個服務器應用程序,我想獲取連接客戶端的主機名,我將如何去在java中做這件事?如何在java中獲取連接客戶端的主機名?
clientSocket.getInetAddress().getHostName()
一直給我的IP地址,而不是主機名,怎麼了?
其中ClientSocket
是SSLSocket
或Socket.
我正在編寫一個服務器應用程序,我想獲取連接客戶端的主機名,我將如何去在java中做這件事?如何在java中獲取連接客戶端的主機名?
clientSocket.getInetAddress().getHostName()
一直給我的IP地址,而不是主機名,怎麼了?
其中ClientSocket
是SSLSocket
或Socket.
嘗試getCanonicalHostName()
代替 - 但是閱讀的Javadoc,因爲這是不能保證。 (你只限於在DNS中註冊的內容等)
我仍然得到了IP地址,而給出了什麼?我將計算機上的主機名設置爲特定名稱,但似乎無法識別,我有多個網絡適配器,它是否有所作爲? – shawn 2011-12-23 06:48:22
這可能會成爲SO以外的網絡問題。如果您嘗試從命令行運行「nslookup <感興趣的IP地址>」,它是否工作?如果沒有,你也不能指望Java爲你解決它。當你說你在一臺特定的計算機上設置主機名時 - 它與運行此應用程序的計算機不同,是嗎?如果不是,則IP需要被系統反向解析 - 使用主機文件,DNS或其他解析機制。 – ziesemer 2011-12-23 06:51:27
好吧我改變了主機文件,現在一切都好了 – shawn 2011-12-23 09:09:47