如何在Java或Android中查找其他设备的MAC地址

时间:2018-02-01 17:35:45

标签: java android networking

如何使用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地址。

0 个答案:

没有答案