有没有办法使用Python访问OS X wi-fi数据? (例如信号强度)

时间:2013-03-02 00:09:21

标签: python macos networking wifi

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

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

2 个答案:

答案 0 :(得分:7)

this question的答案描述了如何加载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 docs

答案 1 :(得分:1)

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

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

您只需输入此信息即可获得帮助

airport
airport -h

将这个和子进程一起使用,你应该可以在python

中完成大部分工作