你是怎么做的?
我试图找到一种简单的方法来获取wifi接口的频道。好吧,我找到了一种方法,但它很乱,而且一点都不简单。我在互联网上搜索过,但似乎没有人遇到同样的问题。
我是这样做的:
我取iwlist wlan0 channel
的输出:
wlan0 13 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz
Channel 12 : 2.467 GHz
Channel 13 : 2.472 GHz
Current Frequency:2.427 GHz (Channel 4)
您可以清楚地看到频道(目前是频道4)。
我使用subprocess
- 模块获取输出:
stdout = Popen('iwlist ' + iface + ' channel', shell=True, stdout=PIPE).stdout
output = stdout.read()
channel = output[-5:-3].replace(' ', '')
输出正是我想要的,但获得它的方式太复杂了。我也不想使用任何shell命令......
还有其他方法吗?提前谢谢!
答案 0 :(得分:0)
您可以使用python-wifi:
from pythonwifi.iwlibs import Wireless
wifi = Wireless('wlan0')
num_frequencies, channels = wifi.getChannelInfo()
current_freq = wifi.getFrequency()
# Only for 2.4 GHz
print channels.index(current_freq) + 1