![使用 iwlist 检索特定 SSID 的名称、质量和信号级别](https://linux22.com/image/130506/%E4%BD%BF%E7%94%A8%20iwlist%20%E6%A3%80%E7%B4%A2%E7%89%B9%E5%AE%9A%20SSID%20%E7%9A%84%E5%90%8D%E7%A7%B0%E3%80%81%E8%B4%A8%E9%87%8F%E5%92%8C%E4%BF%A1%E5%8F%B7%E7%BA%A7%E5%88%AB.png)
我正在做一个有关 RSSI 的项目,我必须使用 Linux 命令行检索我正在处理的特定 WiFi SSID 的信号级别。
我已经使用了iwlist
扫描命令,但我无法通过使用 grep 仅打印 SSID 名称、质量和信号级别来显示我想要的值。
我尝试过的命令没有给我想要的结果:
iwlist INTERFACE scanning essid SpecificESSID | grep Signal
iwlist INTERFACE scanning essid SpecificESSID | grep ESSID,Signal
iwlist INTERFACE scan | grep 'ESSID:"SpecificESSID"\|Signal level'
- 这几乎有效,但它也显示其他网络的信号级别,我只需要一个特定的网络信息。
答案1
第一的,iwlist
是旧命令,还有新命令iw
命令具有更多功能。
如果“您正在使用的 SSID”是您当前连接的接入点 (AP),请使用
iw wlan0 station dump
选择您感兴趣的值(例如,平均信号强度),然后类似
iw wlan0 station dump | grep 'signal avg:'
对于当前连接的 AP,您实际上拥有比所有 AP 更详细的信息。
如果您想要所有可见 AP 的信号强度,请执行以下操作
iw wlan0 scan | egrep 'SSID|signal'
您可以对您感兴趣的 SSID 进行后处理。假设您想要 SSID1 和 SSID2,那么您可以这样做
iw wlan0 scan | egrep 'SSID|signal' | egrep -B1 'SSID1|SSID2'
显示-B1
匹配之前的行,因为在扫描输出中,信号强度位于 SSID 之前。