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

Posted

技术标签:

【中文标题】有没有办法使用 Python 访问 OS X wi-fi 数据? (例如信号强度)【英文标题】:Is there any way to access OS X wi-fi data using Python? (Signal strength, for example) 【发布时间】:2013-02-16 14:53:40 【问题描述】:

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

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

【问题讨论】:

我从来不需要这个特定的功能(我也没有看到它在文档中突出显示),但是可以在docs.python.org/2/library/mac.html查看 OS X 特定的模块 +1 以前没有遇到过这样的事情 【参考方案1】:

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 了解可用属性的完整列表。

【讨论】:

【参考方案2】:

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

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

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

airport
airport -h

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

【讨论】:

以上是关于有没有办法使用 Python 访问 OS X wi-fi 数据? (例如信号强度)的主要内容,如果未能解决你的问题,请参考以下文章

Mac OS X安装 Scrapy

在 OS X 上拒绝 Python CGIHTTPServer 访问

有没有办法从 python 3.x 中的测试脚本隐藏登录凭据

OS X 上的 OpenGL 版本支持

我可以使用 Python 访问 ImageMagick API 吗?

有没有办法从 z/OS 大型机访问 Sql 服务器并在 IBM 3270 终端仿真中得到结果?