2011-12-23 119 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

相關問題