2017-04-04 12 views
0

안녕하세요?파이썬 : WiFi 인터페이스의 현재 채널을 얻으십시오

나는 wifi 인터페이스의 채널을 얻는 간단한 방법을 찾으려고합니다. 글쎄, 나는 그렇게하는 방법을 찾았지만, 꽤 어지럽고 단순하지도 않다. 나는 인터넷을 검색했지만, 아무도 같은 문제가있는 것 같지 않습니다. 당신은 채널 (현재 채널 4)를 참조하십시오 명확하게 할 수

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) 

:

나는이다 iwlist wlan0 channel의 출력을 : 여기

내가 그것을 할 방법이다.

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

출력은 정확히 내가 원하는,하지만 얻을 수있는 방법은 너무 복잡하다 :

I 출력을 얻을 수있는 subprocess -module을 사용하고 있습니다. 나는 또한 쉘 명령을 사용하고 싶지 않다 ...

다른 방법이 있습니까? 미리 감사드립니다.

답변

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