如何使用Java或Android在LAN上找到其他设备(手机,打印机,计算机)的MAC地址?我已经阅读了与此相关的所有答案,但大多数人都在寻找自己设备的MAC地址。
我需要的是将其他设备的IP地址放在我的LAN上,它将返回MAC地址。我目前正在尝试的代码如下所述。
public static String findMACForIP(String IP) throws SocketException, UnknownHostException {
NetworkInterface network = NetworkInterface.getByInetAddress(InetAddress.getByName(IP));
if (network != null) {
byte[] mac = network.getHardwareAddress();
StringBuilder sb = new StringBuilder();
for (int x = 0; x < mac.length; x++) {
sb.append(String.format("%02X%s", mac[x], (x < mac.length - 1) ? "-" : ""));
}
Log.d(Config.TAG, "MAC:" + sb.toString());
return sb.toString();
}
return null;
}
上面的代码清除意味着它正在尝试找到分配了给定IP的接口,因此,如果有其他计算机/设备,它将无法找到该设备上存在的接口,而不是我们所以它将返回null,因此我收到null。
但是当我输入自己的设备IP(安卓设备IP)时,它会返回其MAC地址,因为上面的内容可以找到具有该IP的接口。
我想要的是另一台计算机MAC。这是可能的,因为Google Play商店中有很多应用程序实际上获得了LAN上所有设备的MAC地址。