在 Linux 中從命令行確定無線網路名稱
我在家里和工作中都使用我的個人筆記型電腦,在這兩種情況下我都掛載了 nfs 共享。我想在每次打開筆記型電腦時自動安裝這些共享。
我不能讓它成為一個正常的啟動命令來執行,因為無線連接大約需要半分鐘才能找到網路並連接。
所以我想編寫一個腳本,每 5 秒檢查一次我是否連接到網路以及網路的 essid 是什麼,以便我可以安裝適當的共享。
我查看了 iwconfig 和 ifconfig,它們都沒有返回 essid,只有一個實際的 IP 地址。
如果配置返回…
eth0 Link encap:Ethernet HWaddr 00:26:2d:a2:01:a8 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:16 eth1 Link encap:Ethernet HWaddr f0:7b:cb:45:36:b2 inet addr:192.168.0.48 Bcast:192.168.3.255 Mask:255.255.252.0 inet6 addr: fe80::f27b:cbff:fe45:36b2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:30972 errors:0 dropped:0 overruns:0 frame:124824 TX packets:31414 errors:16 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:25279206 (25.2 MB) TX bytes:4716009 (4.7 MB) Interrupt:17 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:336 errors:0 dropped:0 overruns:0 frame:0 TX packets:336 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:48501 (48.5 KB) TX bytes:48501 (48.5 KB)
iwconfig 返回…
lo no wireless extensions. eth0 no wireless extensions. eth1 IEEE 802.11 Access Point: Not-Associated Link Quality:5 Signal level:210 Noise level:165 Rx invalid nwid:0 invalid crypt:0 invalid misc:0 vboxnet0 no wireless extensions.
iwlist 沒有返回任何有用的東西……
iwlist scan lo Interface doesn't support scanning. eth0 Interface doesn't support scanning. eth1 Interface doesn't support scanning. vboxnet0 Interface doesn't support scanning.
有誰知道一種簡單的方法來找出您通過 linux 命令行連接的無線網路的 essid。
更新 我在上面添加了 ifconfig 和 iwconfig 資訊,我也在執行 Ubuntu 10.10,它是從 10.04 升級的,這似乎與無線有點混亂。他們不再使用來自 gnome 的舊網路管理器應用程序。我也無法連接到我的學校無線網路,所以無線肯定有一些時髦的東西。
萬一回…
iwevent Waiting for Wireless Events from interfaces... 16:34:33.614296 eth1 Set ESSID:"" [13] 16:34:33.615723 eth1 Custom driver event: 16:34:33.615774 eth1 New Access Point/Cell address:Not-Associated 16:34:33.714835 eth1 Set ESSID:"" [62] 16:34:41.869636 eth1 Set Mode:Managed 16:34:41.869688 eth1 Set ESSID:"" [254] 16:34:42.815795 eth1 Custom driver event: 16:35:07.141450 eth1 Set Mode:Managed 16:35:07.141502 eth1 Set Frequency:24.12 GHz 16:35:07.141601 eth1 Set ESSID:"" [121] 16:35:08.160515 eth1 New Access Point/Cell address:00:1E:00:00:19:0E 16:35:08.252912 eth1 Registered node:00:1E:52:79:19:0E 16:35:08.252970 eth1 Custom driver event:
執行 iwgetid 可以獲得無線設備和連接網路的 SSID。它是無線工具的一部分——您似乎已經安裝了它,因為 iwevent 也是其中的一部分。
iwlist scan
當然應該可以為您提供 ssid。但是,從您的範例中,我看不到任何實際的無線介面。我建議將 iwconfig 和 ifconfig 的輸出粘貼到您的問題中,以幫助解決這個問題。同樣通過查看
iwevent
手冊頁,我認為您最好的選擇可能是執行一個呼叫 iwevent 的循環。當 ssid 發生變化時,iwevent 會檢測並報告新的 ssid。請注意,每 5 秒輪詢一次聽起來非常密集,也許您應該減少執行它的頻率?