2012-02-27 86 views
0

如何在Linux下以编程方式确定您的当前活动以太网接口是否为无线设备?如何确定您是否在Linux下的无线接口上

例如,我的机器有有线和无线接口,和输出我ifconfig是:

eth0  Link encap:Ethernet HWaddr 64:b9:e9:cd:4f:b3 
      UP BROADCAST MULTICAST MTU:1500 Metric:1 
      RX packets:7700676 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:3412854 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1000 
      RX bytes:3131639132 (3.1 GB) TX bytes:16826666276 (16.8 GB) 
      Interrupt:27 Base address:0x4000 

eth2  Link encap:Ethernet HWaddr 01:16:4b:1b:90:c9 
      inet addr:192.168.1.152 Bcast:192.168.1.255 Mask:255.255.255.0 
      inet6 addr: fa81::216:baff:de1b:91cc/64 Scope:Link 
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
      RX packets:2307478 errors:15 dropped:0 overruns:0 frame:18469924 
      TX packets:1924909 errors:527 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:1000 
      RX bytes:2475924284 (2.4 GB) TX bytes:996430577 (996.4 MB) 
      Interrupt:23 

有什么有标识一个无线?

+4

'iwconfig'是最接近的等效。如果你想以编程方式确定,那么可能会有更好的方法,而不是像这样的用户工具的输出。 (例如,读取/ proc/net /无线) – Flexo 2012-02-27 00:09:09

+1

您可以尝试运行'iwconfig'并查看哪个接口返回'没有无线扩展'。 – 2012-02-27 00:09:30

回答

2

虽然它可能是常见的所有网络流量到一个单一的接口—去了尤其是在单个适配器系统—它不是在一般情况下正确的。例如,我的笔记本电脑通常会通过Wi-Fi及其基座 T电缆交替路由。

检查ip route的输出是否为wlan条目。至少,这表明是否有无线流量。默认路线可能是最好的指示。

硬连线系统:

[[email protected] ~]$ ip route 
default via 192.168.0.1 dev eth0 proto static 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.103 metric 1 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 

Wi-Fi系统:

[[email protected] ~]$ ip route 
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.105 metric 2 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 
default via 192.168.0.1 dev wlan0 proto static 
+0

谢谢,这个和iwconfig,确定哪个接口是无线的,完成任务。 – Cerin 2012-02-27 04:27:59

相关问题