gpt4 book ai didi

java - 获取局域网内所有IP和MAC地址

转载 作者:行者123 更新时间:2023-11-29 06:55:15 28 4
gpt4 key购买 nike

我列出了局域网中所有设备的 ip 和 mac 地址(比如网络扫描仪)

我想使用java编程语言。

如果我使用我的 ip 地址,结果为 true 但如果我在 lan 中使用另一个 ip 地址,网络变量为空。

(例如;我的 ip 地址:192.168.1.7,另一个 ip 地址:192.168.1.8)

这是我的代码;

public static void checkHosts(String subnet) throws UnknownHostException, IOException{
int timeout=3000;
for (int i=1;i<255;i++){
String host=subnet + "." + i;
if (InetAddress.getByName(host).isReachable(timeout)){
System.out.println(host + " is reachable" + InetAddress.getByName(host));


NetworkInterface network = NetworkInterface.getByInetAddress(InetAddress.getByName(host));

if(network!=null){
System.out.println(network.isUp());
byte[] mac = network.getHardwareAddress();
System.out.println(network.getDisplayName());
System.out.println(network.getName());
System.out.println(InetAddress.getByName(host).getHostName());
System.out.print("Current MAC address : ");

StringBuilder sb = new StringBuilder();
for (int j = 0; j < mac.length; j++) {
sb.append(String.format("%02X%s", mac[j], (j < mac.length - 1) ? "-" : ""));
}
System.out.println(sb.toString());
}

}
}
}

最佳答案

基本上,您要做的是在本地网络上执行 ping 扫描。您提供的代码可能正在执行所需的 ping 扫描(取决于实现),但它仅显示本地接口(interface)的 MAC 地址。要确定网络上计算机的 MAC 地址,您必须查看计算机的 ARP 缓存,这不是平台独立的,因此在 Java 中不容易实现。

关于java - 获取局域网内所有IP和MAC地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35718748/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com