2013-05-07 4 views
0

는 방법은 주어진 (및 연결) 네트워크 인터페이스와이파이 또는 이더넷 있는지 알고 파이썬, 내에서 있나요?파이썬 : 주어진 네트워크 인터페이스가 wifi 또는 이더넷입니까?

모듈 inetfaces은 사용 가능한 네트워크 인터페이스 및 해당 주소 목록을 제공하지만 그 이상은 제공하지 않습니다. pyroute2 .IW (같은 스크립트 예제 디렉토리에있는)와

+0

참조 : http://stackoverflow.com/questions/14648941/how-to-know-if-mac- 주소 부착 무선 카드 또는 이더넷 카드 – Dhara

+0

http://stackoverflow.com/questions/5281341/get-local-network-interface-addresses-using-only-proc – gsmaker

+0

사실, 나는 별도의 프로세스'iwconfig $ interfaceName'에서 실행하고 결과를 파싱합니다. 괜찮을까요? –

답변

1

:

import sys 
from pyroute2 import IW 
from pyroute2 import IPRoute 
from pyroute2.netlink import NetlinkError 

ip = IPRoute() 
iw = IW() 
index = ip.link_lookup(ifname=sys.argv[1])[0] 
try: 
    iw.get_interface_by_ifindex(index) 
    print("wireless interface") 
except NetlinkError as e: 
    if e.code == 19: # 19 'No such device' 
     print("not a wireless interface") 
finally: 
    iw.close() 
    ip.close() 
관련 문제