首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dnsjava从ip地址192.168.1.1到192.168.1.254获取主机名

使用dnsjava从ip地址192.168.1.1到192.168.1.254获取主机名
EN

Stack Overflow用户
提问于 2017-08-23 01:11:20
回答 1查看 909关注 0票数 0

我正尝试在一个android应用程序中使用dnsjava来查找我本地wifi网络中设备的主机名。下面是使用的代码:

代码语言:javascript
复制
try
{
String ipAddress = "33.1.168.192";
String dnsblDomain = "in-addr.arpa";
Record[] records;

Lookup lookup = new Lookup(ipAddress + "." + dnsblDomain, Type.PTR);
SimpleResolver resolver = new SimpleResolver();
resolver.setAddress(InetAddress.getByName("192.168.1.1"));
lookup.setResolver(resolver);
records = lookup.run();

if(lookup.getResult() == Lookup.SUCCESSFUL)
{
    for (int i = 0; i < records.length; i++)
    {
        if(records[i] instanceof PTRRecord)
        {
            PTRRecord ptr = (PTRRecord) records[i];
            System.out.println("DNS Record: " + records[0].rdataToString());
        }
    }
} else {
    System.out.println("Failed lookup");
}

} 
catch(Exception e) 
{
System.out.println("Exception: " + e);
}

代码取自下面的链接,它似乎适用于OP:any way to discover Android devices on your network?

192.168.1.33是我的wifi网络上的活动设备。192.168.1.1是路由器IP。代码每次都会出现“查找失败”的情况。

我不确定我错在哪里,因为我是dnsJava和网络公司的新手。另一个问题是,当扫描所有254个ip时,这会产生完美的结果吗?我正在考虑在prod中使用此代码,并需要确保这一点。

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2017-08-23 01:15:33

反向名称的PTR记录不会按您所想的顺序存储。一般来说,对于IP A.B.C.D,您需要解析D.C.B.A.in-addr.arpa,因此您需要颠倒IP组件的顺序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45823457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档