在Linux中从命令行确定无线networking名称

我使用我的个人笔记本电脑在家里和工作,在这两种情况下,我挂载nfs股份。 我想自动化这些共享的安装,因为每次打开笔记本电脑时都会这样做。

我不能使它成为一个正常的启动命令来运行,因为无线连接需要大约半分钟来定位networking和连接。

所以我想写一个脚本,每5秒钟检查一次,如果我连接到一个networking和什么networking,所以我可以挂载适当的股份。

我看着iwconfig,ifconfig和他们都没有返回一个essid,只有一个实际的IP地址。

ifconfig返回…

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命令行连接到无线networking的无线networking。

更新我添加了上面的ifconfig和iwconfig信息,同时我正在运行Ubuntu 10.10,它从10.04升级,这似乎已经与无线无线。 他们不再使用gnome中的旧networkingpipe理器应用程序。 我也无法连接到我的学校的无线networking,所以无线开始肯定有些时髦。

我回来了

 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,您将获得无线设备和连接networking的SSID。 它是无线工具的一部分 – 你似乎已经安装,因为iwevent也是其中的一部分。

iwlist scan应该可以给你ssid。 但从你的例子,我没有看到任何实际的无线接口。 我build议将iwconfig和ifconfig的输出粘贴到你的问题中,以帮助解决这个问题。

另外从查看iwevent手册页,我想也许你最好的select是运行一个调用iwevent的循环。 当ssid更改时,iwevent将检测并报告新的ssid。

请注意,每5秒钟轮询听起来非常密集,也许你应该less运行一次?

我有一个旧的脚本来处理这样的检查,使用iwconfig,现在已经在几个Fedora发行版上工作了好几年了:

  iwconfig wlan0 |  grep ESSID |  awk -F:'{print $ 2}' 

然后,我会根据返回的内容在脚本中做出决定,例如启动家庭服务或工作服务。 您的iwconfig命令是否不返回曾经与接入点关联的信息?

你也可以让你的脚本根据它获得的IP地址工作,并让你的家庭networking发出一个不同的子网。

或者将其基于默认路由的mac地址。 如果路由器发生变化,您只需更新即可。