我正在和我的同事们一起做一个小项目Tp-Link MR3040使用破障装置。
iw wlan0 connect any
我正在使用可以连接到任何开放 WiFi 网络的命令。
我现在住的地方,时代华纳有线在整个城市都有开放的 WiFi,我不想让我的设备连接它,因为它不提供互联网(我访问的网站被禁止 403),有没有办法将该 ssid 列入“黑名单”?
答案1
您可以扫描并选择自己连接使用信号强度和mac获取扫描结果
iw dev wlan0 scan
在脚本中解析它并手动选择要加入哪一个。如果它们未打开,iw 扫描结果将包含“RSN:”或“WPA:”或“WEP:”。因此,您可以清除加密网络,并选择一个打开的网络,可能具有最佳信号强度“信号:-45.00 dBm”。
因为它是 openwrt,所以您也许可以在 Lua 脚本中执行此操作。
buf = output from iw scan
buf = '\n'..buf..'\nBSS' -- .. is concatenate in lua
使用此正则表达式匹配单个块(在 Lua 或其他任何语言中):
"[^A-Za-z%d]BSS" -- %d is all digits in lua, maybe 0-9 otherwise
在每个块内 grep SSID、信号,并检查“[^A-Za-z%d]+RSN:”、“[^A-Za-z%d]+WPA:”、“[^A-Za-z%d]+WEP:”是否有匹配,忽略匹配的块,并忽略黑名单中 SSID 的块。