【问题标题】:How to get MAC address of Android hotspot client that fails to obtain IP address?获取IP地址失败的Android热点客户端如何获取MAC地址?
【发布时间】:2015-09-18 10:58:39
【问题描述】:

我看到了一些解决方案,用于从打开热点的 Android 设备上运行的应用程序获取成功连接的热点客户端的 MAC 地址。但是,我没有看到给出连接失败的热点客户端MAC地址(即尝试连接热点,但由于认证失败而无法获取IP地址)。

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

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

有没有人知道如何做到这一点?谢谢。

【问题讨论】:

    标签: android macos wifi


    【解决方案1】:

    请看这里

     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 "";
    
    }
    

    【讨论】:

    • 谢谢。但我正在寻找一种获取客户端设备 MAC 地址的方法。具体来说,无法从我这里获取 IP 地址的客户端设备的 MAC 地址(假设我是打开了 wifi 热点的手机)。我不是想获取自己的 MAC 地址。
    猜你喜欢
    • 2019-07-12
    • 2019-01-14
    • 2012-03-14
    • 2012-02-16
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 2016-03-29
    相关资源
    最近更新 更多