【问题标题】:InetAddress.getByName(FQDN) vs InetAddress.getByName(IP), performance issuesInetAddress.getByName(FQDN) 与 InetAddress.getByName(IP),性能问题
【发布时间】: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


【解决方案1】:

感谢 Calle,似乎玩弄端口扫描和许多 DNS 查找也会对网络基础设施产生有趣的影响。在具有多个踏板的 for 循环中运行了几次这些查找后,我接到了一个电话,询问我在做什么。 :-(

干杯,

斯蒂芬妮

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多