当前位置: 首页 > 知识库问答 >
问题:

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

蔚弘量
2023-03-14
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中工作:有什么方法可以在你的网络上发现Android设备吗?

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

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

共有1个答案

龙佐
2023-03-14

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

 类似资料:
  • 问题内容: 创建新容器后,是否可以运行命令以从主机获取容器的IP地址? 基本上,一旦Docker创建了容器,我想滚动自己的代码部署和容器配置脚本。 问题答案: 该的选项就派上用场了。 现代Docker客户端语法为: 旧的Docker客户端语法为: 这些命令将返回Docker容器的IP地址。 如注释中所述:如果在Windows上,请在花括号周围使用双引号而不是单引号。

  • 问题内容: 我的主机文件(C:\ WINDOWS \ system32 \ drivers \ etc \ hosts)具有一堆IP地址到主机名的映射: 我正在尝试找到一种通过Java API以编程方式从IPAddress转换为HostName的方法。 伪代码: 问题答案: 我从这里尝试了代码,它可以工作。即:

  • 主机名到IP地址的解析接口 函数 struct hostent *  gethostbyname (const char *hostname)   获取主机地址   详细描述 主机名到IP地址的解析接口 函数说明 struct hostent* gethostbyname ( const char *  hostname ) 获取主机地址 参数 hostname 一个字符串指针,包含域名或主机名

  • 正如标题所说。我需要能够检索docker主机的IP地址,以及从主机到容器的端口映射,并在容器内部完成此操作。

  • 问题内容: 寻找一种使计算机具有当前外部IP的更好方法…可以正常工作,但宁愿不依赖外部站点来收集信息…我只能使用与Mac OS捆绑在一起的标准Python 2.5.1库X 10.5.x 问题答案: 如果您在获得外部IP的路由器后面,恐怕您别无选择,只能像您一样使用外部服务。如果路由器本身具有某些查询接口,则可以使用它,但是该解决方案将针对特定环境且不可靠。

  • 如何使用库存文件中的主机名和IP地址的值? 例如,我在文件中只有一个主机,名称为 FQDN,但这是在 DNS 服务器上注册的。 我尝试了一些变量,但总是得到主机名。但是,需要他们两个:( My test.yml file: 输出是: