Python内から、特定の (および接続された)ネットワーク インターフェイスがwifiまたはEthernetであるかどうかを知る方法はありますか?
このモジュールinetfaces
は、利用可能なネットワーク インターフェイスと対応するアドレスのリストを提供しますが、それ以上のものは提供しません。
Python内から、特定の (および接続された)ネットワーク インターフェイスがwifiまたはEthernetであるかどうかを知る方法はありますか?
このモジュールinetfaces
は、利用可能なネットワーク インターフェイスと対応するアドレスのリストを提供しますが、それ以上のものは提供しません。
pyroute2 .IW (そのようなスクリプトはexamplesディレクトリにあります):
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()