2017-04-04 103 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