没有直接的等价物。Windows API 混合了两个属性:协议和驱动程序。
要获取接口协议(以太网、ATM、环回、火线),您可以使用 SIOCGIFHWADDR ioctl,它将返回“链接封装”。在大多数计算机中,它将是环回或以太网(大多数设备,包括 Wifi、隧道等都是以太网)。此信息由“ifconfig”工具显示:
$ ifconfig | grep encap
eth0 Link encap:Ethernet HWaddr 00:21:cc:xx:xx:xx
lo Link encap:Local Loopback
virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
wlan0 Link encap:Ethernet HWaddr 00:24:d7:xx:xx:xx
要获取接口驱动程序,您可以探索 /sys/class/net/INTERFACE/device/ 路径。然后你可以使用各种启发式方法:
# get driver name
$ readlink /sys/class/net/eth0/device/driver
../../../bus/pci/drivers/e1000e
$ readlink /sys/class/net/wlan0/device/driver
../../../../bus/pci/drivers/iwlwifi
# check if it is wifi or not
$ ls -l /sys/class/net/wlan0/wireless/status
-r--r--r-- 1 root root 4096 Sep 2 15:42 /sys/class/net/wlan0/wireless/status
$ ls -l /sys/class/net/eth0/wireless/status
ls: cannot access /sys/class/net/eth0/wireless/status: No such file or directory