【发布时间】:2014-12-07 04:51:00
【问题描述】:
我很难弄清楚为什么解析 IP 比解析域名需要更长的时间。我知道必须转换 IP 才能被 getByName 方法使用。但是这个:
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 命令”不是一种选择。
干杯,
斯蒂芬妮
【问题讨论】:
-
把所有的 Java 都放在外面,反向查询通常比正向查询慢,因为正向查询更频繁,因此更有可能已经存在于附近的缓存中。反向区域也更有可能没有正确设置和/或维护,因为它们不如正向区域重要。
标签: java performance dns ip lan