【问题标题】:Java ARP ScannerJava ARP 扫描器
【发布时间】:2014-11-12 17:07:44
【问题描述】:

我需要编写一个 java 程序,它获取所有计算机网络接口并扫描子网内的 IP 地址和 MAC 地址。

我不太确定该怎么做,但我发现有一个方法叫做:

Arping.scan(deviceName, network, mask, timeout);

这是我要找的吗?它返回什么?没有很多cmets,我对此很陌生,所以我无法弄清楚自己。请帮忙!

【问题讨论】:

标签: java arp


【解决方案1】:

public void checkHosts(String subnet){
   int timeout=1000;
   for (int i=1;i<254;i++){
       String host=subnet + "." + i;
       if (InetAddress.getByName(host).isReachable(timeout)){
           System.out.println(host + " is reachable");
       }
   }
}

【讨论】:

  • 但这只有在 LAN 为 D 类时才有效,对吧?这不适用于像 87.249.5.218 这样的 IP
  • 我曾经做过一次这样的事情,如果你对它进行大量线程化,你可以在几分钟内扫描 B 类范围(每次重试 3 次,并进行增量退避)。我在 10k 线程区域的某个地方运行(您可以运行很多线程,因为大多数时候您都在等待 isReachable 超时)。
  • 请注意,这使用 ICMP ECHO,而不是 ARP。 docs.oracle.com/javase/7/docs/api/java/net/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多