Java InetAddress.getByName(FQDN)与InetAddress.getByName(IP)的性能问题

Java InetAddress.getByName(FQDN)与InetAddress.getByName(IP)的性能问题,java,performance,dns,ip,lan,Java,Performance,Dns,Ip,Lan,我很难弄明白为什么解析IP比解析域名花费的时间更长。我确实理解,为了让getByName方法使用,必须转换IP。但这是: InetAddress address = InetAddress.getByName("google.com"); System.out.println("Reachable: " + address.isReachable(10000)); 运行速度几乎是此速度的20倍: InetAddress address = InetAddress.getByName("192.

我很难弄明白为什么解析IP比解析域名花费的时间更长。我确实理解,为了让getByName方法使用,必须转换IP。但这是:

InetAddress address = InetAddress.getByName("google.com");
System.out.println("Reachable: " + address.isReachable(10000));
运行速度几乎是此速度的20倍:

InetAddress address = InetAddress.getByName("192.168.1.1");
System.out.println("Reachable: " + address.isReachable(10000));
我的目标是通过IP地址搜索特定网段的实时主机。因此,从192.168.1.1运行到192.168.255.255,要经历65025次,似乎并不明智-(

不幸的是,调用“ping命令”不是一个选项

干杯


Stephanie

谢谢Calle,玩端口扫描和许多DNS查找似乎也会在网络基础设施上触发有趣的效果。在使用多个踏板在for循环中运行了两次这些查找后,我接到一个电话,询问我在做什么:-(

干杯


Stephanie

将所有内容都放在Java之外,反向查找通常比正向查找慢,因为正向查询更频繁,因此更可能已经存在于附近的缓存中。反向区域也更可能无法正确设置和/或维护,因为它们不如正向区域重要。