Linux

在 Linux 中從命令行確定無線網路名稱

  • May 21, 2019

我在家里和工作中都使用我的個人筆記型電腦,在這兩種情況下我都掛載了 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 秒輪詢一次聽起來非常密集,也許您應該減少執行它的頻率?

引用自:https://serverfault.com/questions/256074