#!/usr/bin/lua
dev = arg[1]
local sys = require "luci.sys"
local utl = require "luci.util"
local iw = luci.sys.wifi.getiwinfo(dev)
function scanlist(times)
local i, k, v
local l = { }
local s = { }
for i = 1, times do
for k, v in ipairs(iw.scanlist or { }) do
if not s[v.bssid] then
l[#l+1] = v
s[v.bssid] = true
end
end
end
return l
end
function format_wifi_encryption(info)
if info.wep == true then
return "WEP"
elseif info.wpa > 0 then
return string.format("Pairwise: %s / Group: %s >%s - %s",
table.concat(info.pair_ciphers, ", "),
table.concat(info.group_ciphers, ", "),
(info.wpa == 3) and string.format("mixed WPA/WPA2")
or (info.wpa == 2 and "WPA2" or "WPA"),
table.concat(info.auth_suites, ", ")
)
elseif info.enabled then
return unknown
else
return open
end
end
for i, net in ipairs(scanlist(3)) do
net.encryption = net.encryption or { }
print("channel:",net.channel);
print("ssid:",net.ssid);
print("bssid:",net.bssid);
print("Mode:",net.mode);
wep=net.encryption.wep and 1 or 0
print("Encryption:",format_wifi_encryption(net.encryption));
print("");
end
使用方法:
root@OPENWRT:~# ./scanwifi.lua radio0
root@OPENWRT:~# ./scanwifi.lua radio1