2017-04-04 84 views
0

你好吗?Python:获取WiFi接口当前频道

我想找到一个简单的方法来获得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 -module得到输出:

stdout = Popen('iwlist ' + iface + ' channel', shell=True, stdout=PIPE).stdout 
output = stdout.read() 
channel = output[-5:-3].replace(' ', '') 

输出正是我想要的,但得到的方式,它是太复杂了。我也不想使用任何shell命令...

还有别的办法吗?先谢谢你!

回答

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 
+0

这是方式更舒适!谢谢:) – chrizator