在 Linux 上,当它们扫描可用的 WiFi 网络时iw提供iwlist大量信息。我想说这信息太多了。2,308 行对于人类来说解析起来太多了。诚然,我在一栋繁忙的公寓楼里,但更重要的是,冗长的输出实际上对我来说是一个障碍。
$ sudo iw dev wlp8s0 scan | wc -l
2308
Run Code Online (Sandbox Code Playgroud)
我更喜欢更简单的输出。一个相对简短的表格,显示附近接入点的简明概述。此输出仅显示人们可能期望从 GUI WiFi 实用程序获得的各种字段(SSID、信号强度、加密类型),但在终端中。
似乎类似的用户已经在我之前完成了同样的任务,并且在编写复杂的脚本和程序来解析 Linux 无线工具(如iw. 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14
iw我发现的这个问题的几乎每个答案都建议解析诸如和iwlist使用grep、sed、之类的工具的输出awk,但这似乎不是一个很好的答案。特别是因为iw明确指出其输出不应被删除。
不要对这个工具进行屏幕抓取,我们认为它的输出不稳定。
我想说nmcli它非常接近我想要的,只是我认为NetworkManager仅仅为了通过nmcli. 而且,iw和iwlist似乎比我在谷歌搜索中更普遍nmcli。
FreeBSD 上ifconfig的 WiFi 扫描输出看起来很完美。我不确定该实现是否在所有 BSD 风格中都很常见,但它正是我希望在 Linux 中使用的工具。
是否有一个类似的库存/标准工具适用于几乎每个版本的 Linux,可以扫描 WiFi 网络并列出如上所示的简单输出?
大多数 Linux 平台都附带wpa_supplicant,它可以独立使用,也可以由其他“框架”(如 NetworkManager 及其 CLI 工具)使用wpa_cli。我不知道更新的 systemd 方法(它们往往会取代其他所有方法......)。
# wpa_cli
wpa_cli v2.6
[...]
Selected interface 'wlan0'
Interactive mode
> scan
OK
<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-RESULTS
<3>WPS-AP-AVAILABLE
<3>CTRL-EVENT-NETWORK-NOT-FOUND
<3>CTRL-EVENT-SCAN-STARTED
<3>CTRL-EVENT-SCAN-RESULTS
<3>WPS-AP-AVAILABLE
<3>CTRL-EVENT-NETWORK-NOT-FOUND
> scan_results
bssid / frequency / signal level / flags / ssid
xx:xx:xx:xx:xx:xx 2412 -39 [WPA2-PSK-CCMP][ESS]
xx:c7:29:xx:xx:xx 2462 -56 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] SomeSSID
xx:e9:dd:xx:xx:xx 2412 -57 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] OtherSSID
xx:8e:78:xx:xx:xx 2412 -65 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] AthirdSSID
[...]
Run Code Online (Sandbox Code Playgroud)
或非交互式:
# wpa_cli scan_results
Selected interface 'wlan0'
bssid / frequency / signal level / flags / ssid
xx:xx:xx:xx:xx:xx 2412 -40 [WPA2-PSK-CCMP][ESS]
[...]
Run Code Online (Sandbox Code Playgroud)
(仅供参考,这是一个隐藏的 ssid)。
| 归档时间: |
|
| 查看次数: |
2590 次 |
| 最近记录: |