2012-02-27 3 views
0

Как вы программно определяете под Linux, если ваш текущий активный интерфейс ethernet является беспроводным устройством?Как определить, находитесь ли вы в беспроводном интерфейсе под 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/wireless) – Flexo

+1

Вы можете попробовать запустить 'iwconfig' и посмотреть, какой интерфейс возвращает' no wireless extensions'. –

ответ

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