我正在从subprocess.Popen访问ifconfig,iwconfig和iw,如下所示:
p = sp.Popen(["ifconfig",nic],stdin=sp.PIPE,stdout=sp.PIPE,stderr=sp.PIPE)
out,err = p.communicate()
是否有更好的方法,即更快地执行此操作,例如直接与底层代码接口,或者增加的时间延迟可忽略不计 - 使用iw切换频道时,时间成为一个问题。
答案 0 :(得分:2)
尝试直接从/proc
文件系统读取/写入相关文件。
/proc
伪文件系统是Linux内核公开大量信息的地方。您可能希望在/proc/net
中查看,尤其是/proc/net/dev
和/proc/net/wireless
。请参阅documentation,以及更多information。
答案 1 :(得分:0)
所以,最后开始编写自己的代码 - 直接使用netlink和ioctl来处理iw和ifconfig - 分别托管在https://github.com/wraith-wireless/pyric和https://pypi.python.org/pypi/PyRIC/