如何获取无法获取IP地址的Android热点客户端的MAC地址?

时间:2015-09-18 10:58:40

标签: android macos wifi

我已经看到了从启用了热点的Android设备上运行的应用获取成功连接的热点客户端的MAC地址的解决方案。但是,我没有看到一个提供无法连接的热点客户端的MAC地址(即尝试连接到热点,但由于身份验证失败而无法获取IP地址)。

我正在寻找这样一个失败的热点客户端的MAC地址的原因是因为我想记下附近的Wifi设备。然后,我可以识别附近的人,类似于广告系统。只是我使用普通的Android手机,而他们依靠专用硬件。

我不能指望成功的热点连接,因为如果我尝试使用与用户已设置的身份验证配置不同的身份验证配置来打开热点,则Android热点设备会崩溃并重新启动。 Android将其检测为某些系统违规并重新启动。这也不是一种理想的方法,因为我宁愿保持热点配置不受影响。这是我希望失败客户的另一个原因。

有谁知道如何做到这一点?感谢。

1 个答案:

答案 0 :(得分:0)

请看这个

 public static String getMACAddress(String interfaceName) {
    try {
        List<NetworkInterface> interfaces = Collections.list(NetworkInterface
                .getNetworkInterfaces());
        for (NetworkInterface intf : interfaces) {
            if (interfaceName != null) {
                if (!intf.getName().equalsIgnoreCase(interfaceName))
                    continue;
            }
            byte[] mac = intf.getHardwareAddress();
            if (mac == null)
                return "";
            StringBuilder buf = new StringBuilder();
            for (int idx = 0; idx < mac.length; idx++)
                buf.append(String.format("%02X:", mac[idx]));
            if (buf.length() > 0)
                buf.deleteCharAt(buf.length() - 1);
            return buf.toString();
        }
    } catch (Exception ex) {
    } // for now eat exceptions
    return "";

}