我需要获取 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。 感谢您的帮助。
您可以使用
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.")