有没有办法从Python中知道给定(和连接的)网络接口是wifi还是Ethernet?
该模块inetfaces
提供了可用网络接口和相应地址的列表,但仅此而已。
有没有办法从Python中知道给定(和连接的)网络接口是wifi还是Ethernet?
该模块inetfaces
提供了可用网络接口和相应地址的列表,但仅此而已。
使用pyroute2 .IW (类似的脚本在示例目录中):
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()
您可以使用 python scapy模块。
from scapy.all import *
print(get_windows_if_list())