5 function printf(fmt, ...)
6 print(string.format(fmt, ...))
25 function print_info(api, dev)
26 local iw = iwinfo[api]
28 printf("%-9s Type: %s ESSID: \"%s\"", dev, api, iw.ssid(dev))
29 printf(" Access Point: %s", iw.bssid(dev))
31 printf(" Mode: %s Channel: %d (%.3f GHz)",
32 iw.mode(dev), iw.channel(dev), n(iw.frequency(dev)) / 1000)
34 printf(" Tx-Power: %s dBm Link Quality: %s/%s",
35 s(iw.txpower(dev)), s(iw.quality(dev)), s(iw.quality_max(dev)))
37 printf(" Signal: %s dBm Noise: %s dBm",
38 s(iw.signal(dev)), s(iw.noise(dev)))
40 printf(" Bit Rate: %.1f MBit/s",
41 n(iw.bitrate(dev)) / 1000)
43 printf(" Encryption: %s",
44 iw.encryption(dev).description)
49 function print_scan(api, dev)
50 local iw = iwinfo[api]
51 local sr = iw.scanlist(dev)
54 if sr and #sr > 0 then
55 for si, se in ipairs(sr) do
56 printf("Cell %02d - Address: %s", si, se.bssid)
57 printf(" ESSID: \"%s\"",
60 printf(" Mode: %s Channel: %d",
61 s(se.mode), n(se.channel))
63 printf(" Signal: %s dBm Quality: %d/%d",
64 s(se.signal), n(se.quality), n(se.quality_max))
66 printf(" Encryption: %s",
67 s(se.encryption.description))
72 print("No scan results or scanning not possible")
77 function print_txpwrlist(api, dev)
78 local iw = iwinfo[api]
79 local pl = iw.txpwrlist(dev)
80 local cp = n(iw.txpower(dev))
83 if pl and #pl > 0 then
84 for _, pe in ipairs(pl) do
85 printf("%s%3d dBm (%4d mW)",
86 (cp == pe.dbm) and "*" or " ",
90 print("No TX power information available")
96 function print_freqlist(api, dev)
97 local iw = iwinfo[api]
98 local fl = iw.freqlist(dev)
99 local cc = n(iw.channel(dev))
102 if fl and #fl > 0 then
103 for _, fe in ipairs(fl) do
104 printf("%s %.3f GHz (Channel %d)",
105 (cc == fe.channel) and "*" or " ",
106 n(fe.mhz) / 1000, n(fe.channel))
109 print("No frequency information available")
115 function print_assoclist(api, dev)
116 local iw = iwinfo[api]
117 local al = iw.assoclist(dev)
120 if al and next(al) then
121 for ai, ae in pairs(al) do
122 printf("%s %s dBm", ai, s(ae.signal))
125 print("No client connected or no information available")
134 print(" iwinfo <device> info")
135 print(" iwinfo <device> scan")
136 print(" iwinfo <device> txpowerlist")
137 print(" iwinfo <device> freqlist")
138 print(" iwinfo <device> assoclist")
143 local api = iwinfo.type(dev)
145 print("No such wireless device: " .. dev)
150 if arg[2]:match("^i") then
153 elseif arg[2]:match("^s") then
156 elseif arg[2]:match("^t") then
157 print_txpwrlist(api, dev)
159 elseif arg[2]:match("^f") then
160 print_freqlist(api, dev)
162 elseif arg[2]:match("^a") then
163 print_assoclist(api, dev)
166 print("Unknown command: " .. arg[2])