有没有办法使用 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 数据? (例如信号强度)的主要内容,如果未能解决你的问题,请参考以下文章
在 OS X 上拒绝 Python CGIHTTPServer 访问
有没有办法从 python 3.x 中的测试脚本隐藏登录凭据