我只是好奇是否可以使用任何 Python 工具来轮询 OS X 中的 wi-fi 信号强度。我的大部分搜索只是为 Linux 提供 Python 工具,但没有为 OS X 提供。
如果没有,还有其他方法可以通过编程方式获取此类数据吗?
我只是好奇是否可以使用任何 Python 工具来轮询 OS X 中的 wi-fi 信号强度。我的大部分搜索只是为 Linux 提供 Python 工具,但没有为 OS X 提供。
如果没有,还有其他方法可以通过编程方式获取此类数据吗?
这个问题的答案描述了如何加载 CoreWLAN 框架。完成此操作后,您可以使用 CWInterface 类查找 RSSI 以及其他统计信息:
import objc
objc.loadBundle('CoreWLAN',
bundle_path='/System/Library/Frameworks/CoreWLAN.framework',
module_globals=globals())
for iname in CWInterface.interfaceNames():
interface = CWInterface.interfaceWithName_(iname)
print """
Interface: %s
SSID: %s
Transmit Rate: %s
Transmit Power: %s
RSSI: %s""" % (iname, interface.ssid(), interface.transmitRate(),
interface.transmitPower(), interface.rssi())
有关可用属性的完整列表,请参阅CWInterface 文档。
对于 mac,有一个名为 airport 的命令行工具。您可以手动调整任何 wi-fi 设置、网卡设置、网络故障排除、更改连接上使用的安全类型、将数据包捕获到 pcap 文件中、加入和离开网络、忘记 wifi 网络、优先路由器和网络、查看信号强度和干扰等。
它通常在这里-/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport
你可以输入这个来寻求帮助
airport
airport -h
一起使用这个和子进程,你应该能够在 python 中完成大部分这些事情