2013-01-11 148 views
2

我想了解如何獲取我的局域網上的computr名稱,並給出IP地址與JCIFS,但我不能得到任何東西,但它的IP。從JCIFS獲取IP地址的主機名

我正在使用的代碼是

InetAddress addr = NbtAddress.getByName(ip).getInetAddress(); 
    String test = UniAddress.getByName(ip).getHostName(); 
    System.out.println("IP: " + ip + " - addr: " + addr.getHostName() + " - test: " + test); 

而且我得到的結果是

IP: 10.1.2.115 - addr: 10.1.2.115 - test: 10.1.2.115 

相反,如果我更換getHostAddress()toString()我所得到的是

IP: 10.1.2.115 - addr: 10.1.2.115 - test: 0.0.0.0<00>/10.1.2.115 

我在哪裏錯了?

我使用IP 10.1.2.117從Mac測試lib,而目標是Android設備。

+0

這可能是因爲'InetAddress''名稱解析不會執行NMB查找......並且您沒有運行DNS服務器。 – fge

+0

是的,但問題是在'測試',將給我的名字,但它會返回我的IP ... – tiwiz

回答

-1

您可以使用標準的Java API嗎?如果是這樣,請嘗試以下內容

InetAddress addr = InetAddress.getByName("127.0.0.1"); 
String host = addr.getHostName(); 
+0

同樣的結果,不幸的是:( – tiwiz

+0

是否從命令行的查找返回給你的主機名? – Steve

+0

它返回地址...不幸的是,我注意到它的意圖就是這樣,因爲(至少從我的理解),只有Windows獲得了Netbios的名字......但我無法理解其他應用程序如何看待,例如,我的電話名字... – tiwiz

0

有點晚了,但是我有和jcifs 1.3.17一樣的問題。我恢復到1.2.25,現在可以工作。

1

JCIFS停止支持1.3.14版本的Netbios名稱解析。 你可以在這裏找到發佈說明。 https://jcifs.samba.org/