9

我只是好奇是否可以使用任何 Python 工具来轮询 OS X 中的 wi-fi 信号强度。我的大部分搜索只是为 Linux 提供 Python 工具,但没有为 OS X 提供。

如果没有,还有其他方法可以通过编程方式获取此类数据吗?

4

2 回答 2

7

这个问题的答案描述了如何加载 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 文档

于 2013-03-02T03:24:35.620 回答
2

对于 mac,有一个名为 airport 的命令行工具。您可以手动调整任何 wi-fi 设置、网卡设置、网络故障排除、更改连接上使用的安全类型、将数据包捕获到 pcap 文件中、加入和离开网络、忘记 wifi 网络、优先路由器和网络、查看信号强度和干扰等。

它通常在这里-/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport

你可以输入这个来寻求帮助

airport
airport -h

一起使用这个和子进程,你应该能够在 python 中完成大部分这些事情

于 2015-06-17T18:31:24.330 回答