我使用pyobjc Package 器来扫描网络:
import objc
objc.loadBundle(
"CoreWLAN",
bundle_path="/System/Library/Frameworks/CoreWLAN.framework",
module_globals=globals()
)
from CoreWLAN import CWNetwork, CWWiFiClient
client = CWWiFiClient.sharedWiFiClient()
iface = client.interfaceWithName_("en0")
networks, error = iface.scanForNetworksWithName_error_(
None,
None,
)
print(networks)
并得到
{(〈CWNetwork:0x7ff7a64040d0〉[ssid=FRITZ!Box 7520 HT,bssid=(null),security=WPA2 Personal,rssi= -84,channel=〈CWChannel:0x7ff79644b800〉[channelNumber=116(5GHz),channelWidth={80MHz}],ibss=0],〈CWNetwork:0x7ff7a64447d0〉[ssid=FRITZ$Box 7412,bssid=(null),security=WPA/WPA2 Personal,rssi= -52,channel=〈CWChannel:0x7ff7964054c0〉[channelNumber=11(2GHz),channelWidth={20MHz}],ibss=0],...)}
正如您可能看到的,bssid为null。此外,正如这里所指出的,这是预期的行为:https://developer.apple.com/forums/thread/119490?answerId=387785022#387785022
如何启用此代码的位置服务以获取bssid?
**UPD:找到解决方案!**github.com/ronaldoussoren/pyobjc/issues/484
1条答案
按热度按时间rhfm7lfc1#
这是我用来为Python生成位置服务权限请求的脚本:
在我对MacOS 13.2的测试中,如果Python有位置服务权限,那么你可以看到BSSID。这似乎是一个错误修复,因为这应该是预期的行为,因为他们开始在MacOS 10.15中隐藏BSSID。