我尝试使用网络上的本地IP地址获取设备的名称。这是我应该怎么做的? ex)Arnold-PC,andoid-nnnnnnnnnn
String name = InetAddress.getByName(ip).getHostName();
System.out.println(name);
上面应该给我主持人的名字......但是给了我本地的IP地址。 - 192.168.2.101
根据文件...
public String getHostName()
返回与此IP地址对应的主机名。这可能或 可能不是完全合格的名称。如果IP地址不能 已解决,而是返回数字表示
为什么无法找到主持人的姓名?
我对计算机网络知之甚少...所以请原谅我的无知。 :P
答案 0 :(得分:0)
在命令提示符下检查是否可以使用nsloookup解析ip地址
如果你不能,那么你的DNS坏了
我想引用java文档中的几行
getCanonicalHostName()获取此属性的完全限定域名 IP地址。尽力而为的方法,意味着我们可能无法返回 FQDN取决于底层系统配置。
另一个技巧是编辑主机文件以获得输出(不推荐)
也看看这个答案
答案 1 :(得分:0)
来自文档
如果使用主机名创建此InetAddress,则将记住并返回此主机名;否则,将执行反向名称查找,并将根据系统配置的名称查找服务返回结果。如果需要查找名称服务,请调用getCanonicalHostName。
如果名称getHostName()
无法联系到DNS服务器,那么它似乎不会查找该名称。 DNS服务器将为主机IP地址命名,就像电话簿一样。试试getCanonicalHostName()
。