Python访问命令行工具ifconfig、iwconfig和iw的方法

0 投票
2 回答
2079 浏览
提问于 2025-04-18 12:33

我正在通过subprocess.Popen来访问ifconfig、iwconfig和iw,代码如下:

p = sp.Popen(["ifconfig",nic],stdin=sp.PIPE,stdout=sp.PIPE,stderr=sp.PIPE)
out,err = p.communicate()

有没有更好的方法,比如直接和底层代码对接,这样会更快?或者说,增加的时间延迟其实不算什么——当使用iw切换频道时,时间就变得很重要了。

2 个回答

2

试着直接读取或写入 /proc 文件系统中的相关文件。

/proc 是一个虚拟文件系统,Linux 内核在这里提供了很多信息。你可以在 /proc/net 目录下看看,特别是 /proc/net/dev/proc/net/wireless 这两个文件。可以参考一下 文档,还有一些其他的 信息

1

所以,我终于开始写自己的代码了 - 这个代码直接和 netlink 以及 ioctl 进行交互,分别用来处理 iw 和 ifconfig 命令 - 代码托管在 https://github.com/wraith-wireless/pyrichttps://pypi.python.org/pypi/PyRIC/ 上。

撰写回答