在Python中获取wifi MAC地址

问题描述 投票:0回答:1

我需要获取 wifi 唯一 ID。 SSID 不安全,因为你可以有不同的 wifi 具有相同的名称,所以我要查找路由器的 MAC 地址。到目前为止,我使用

arp
来获取此信息,但我发现一个 wifi 的 MAC 地址似乎随着时间的推移而改变。这个函数是否适合检索 wifi 路由器的 MAC 地址?

    def get_wifi_info(self):
        result = subprocess.run(["iwgetid"], capture_output=True, text=True)
        ssid = result.stdout.split('"')[1]

        arp_output = subprocess.check_output(["/usr/sbin/arp", "-a"]).decode("utf-8")
        mac_pattern = re.compile(r"..:..:..:..:..:..")
        mac_address = mac_pattern.findall(arp_output)

        return ssid, mac_address[0]

我使用的是 Raspbian 11。 感谢您的帮助。

python raspberry-pi wifi
1个回答
0
投票

您可以使用

iwconfig
对其输出进行一些处理来获得它:

try:
    output = subprocess.check_output(["iwconfig"], text=True)
    mac_address = None
    for line in output.splitlines():
        if "HWaddr" in line:
            mac_address = line.split()[1]
            break
    # now you have mac address
except subprocess.CalledProcessError:
    print("Failed to retrieve Wi-Fi MAC address.")
© www.soinside.com 2019 - 2024. All rights reserved.