linux - iwlist 输出到列表或变量

标签 linux awk

我正在尝试创建一个 php 网页让用户连接到无线网络。由于“wireless-tools”是唯一可用的选项,我使用 iwlist 通过以下命令显示可用的 wifi 网络:

iwlist wlan0 scan | egrep 'Cell |Quality|ESSID|Auth|key|IE: IEEE|IE: WPA' 

这给了我以下输出:

     Cell 01 - Address: 88:03:55:E8:3A:D0
                Quality=23/70  Signal level=-87 dBm  
                Encryption key:on
                ESSID:"VGV7519E83ADB"
                IE: WPA Version 1
                    Authentication Suites (1) : PSK
                IE: IEEE 802.11i/WPA2 Version 1
                    Authentication Suites (1) : PSK
      Cell 02 - Address: 88:03:55:E8:3A:D1
                Quality=23/70  Signal level=-87 dBm  
                Encryption key:off
                ESSID:"KPN Fon"
      Cell 03 - Address: 90:5C:44:C5:B8:9D
                Quality=59/70  Signal level=-51 dBm  
                Encryption key:on
                ESSID:"Doggie"
                IE: WPA Version 1
                    Authentication Suites (1) : PSK
                IE: IEEE 802.11i/WPA2 Version 1
                    Authentication Suites (1) : PSK
      Cell 04 - Address: 54:FA:3E:60:F9:B1
                Quality=22/70  Signal level=-88 dBm  
                Encryption key:on
                ESSID:"HZN249093067"
                IE: IEEE 802.11i/WPA2 Version 1
                    Authentication Suites (1) : PSK
      Cell 05 - Address: DC:71:44:FA:1D:17
                Quality=27/70  Signal level=-83 dBm  
                Encryption key:on
                ESSID:"UPC244948707"
                IE: IEEE 802.11i/WPA2 Version 1
                    Authentication Suites (1) : PSK
      Cell 06 - Address: 64:D1:A3:31:D1:6C
                Quality=24/70  Signal level=-86 dBm  
                Encryption key:on
                ESSID:"Sitecom31D16A"
                IE: IEEE 802.11i/WPA2 Version 1
                    Authentication Suites (1) : PSK
      Cell 07 - Address: F8:04:2E:30:84:31
                Quality=22/70  Signal level=-88 dBm  
                Encryption key:on
                ESSID:"UPC242176060"
                IE: IEEE 802.11i/WPA2 Version 1
                    Authentication Suites (1) : PSK

因为我想列出所使用的身份验证类型,所以我显示了加密,IE: IEEE 和 IE: WPA 列出了 WEP、WPA1 和 WPA2 PSK

有没有办法像这样将结果保存在变量中?

Cell 01 (88:03:55:E8:3A:D0, VGV7519E83ADB, WPA, WPA2 PSK, 23/70, -87)
Cell 02 (88:03:55:E8:3A:D1, KPN Fon, WEP, , 23/70, -87)
Cell 03 (90:5C:44:C5:B8:9D, Doggie, WPA, WPA2 PSK,  59/70, -51)
etc...

我试过使用 AWK(gawk 不可用)但没有成功..

结果

iwlist wlan0 scan

      wlan0     Scan completed :
      Cell 01 - Address: 88:03:55:E8:3A:D1
                Channel:1
                Frequency:2.412 GHz (Channel 1)
                Quality=29/70  Signal level=-81 dBm  
                Encryption key:off
                ESSID:"KPN Fon"
                Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                          18 Mb/s; 36 Mb/s; 54 Mb/s
                Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
                Mode:Master
                Extra:tsf=000009e127b7513e
                Extra: Last beacon: 6290ms ago
                IE: Unknown: 00074B504E20466F6E
                IE: Unknown: 010882848B961224486C
                IE: Unknown: 030101
                IE: Unknown: 2A0104
                IE: Unknown: 32040C183060
                IE: Unknown: 2D1A6C0017FFFF0000000000000000000000000000000C0000000000
                IE: Unknown: 3D1601000400000000000000000000000000000000000000
                IE: Unknown: 3E0100
                IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
                IE: Unknown: 0B0504001C127A
                IE: Unknown: 7F0101
                IE: Unknown: DD8F0050F204104A00011010440001021041000100103B0001031047001000000000000000030000880355E83ADB1021000B436F72706F726174696F6E1023000B564756373531394B5732321024000930322E30302E3133361042000A413334343030333035311054000800060050F204000110110014576972656C65737320526F757465722857464129100800020084
                IE: Unknown: 07064E4C20010D10
      Cell 02 - Address: 90:5C:44:C5:B8:9D
                Channel:11
                Frequency:2.462 GHz (Channel 11)
                Quality=58/70  Signal level=-52 dBm  
                Encryption key:on
                ESSID:"Doggie"
                Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                          18 Mb/s; 36 Mb/s; 54 Mb/s
                Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
                Mode:Master
                Extra:tsf=000001c683317915
                Extra: Last beacon: 90ms ago
                IE: Unknown: 00124368696E6565732052657374617572616E74
                IE: Unknown: 010882848B961224486C
                IE: Unknown: 03010B
                IE: Unknown: 2A0104
                IE: Unknown: 32040C183060
                IE: Unknown: 0706455520010D14
                IE: Unknown: 2D1AAC0117FFFF000000000000000000000000000000000000000000
                IE: Unknown: 3D160B000700000000000000000000000000000000000000
                IE: WPA Version 1
                    Group Cipher : TKIP
                    Pairwise Ciphers (2) : TKIP CCMP
                    Authentication Suites (1) : PSK
                IE: IEEE 802.11i/WPA2 Version 1
                    Group Cipher : TKIP
                    Pairwise Ciphers (2) : TKIP CCMP
                    Authentication Suites (1) : PSK
                IE: Unknown: 7F080100000000000000
                IE: Unknown: 0B05040031127A
                IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
                IE: Unknown: 7F080100000000000000
                IE: Unknown: 0706455520010D10
                IE: Unknown: DDA70050F204104A0001101044000102103B00010310470010E6825C801DD411B2860188B76881A5BF1021001852616C696E6B20546563686E6F6C6F67792C20436F72702E1023001C52616C696E6B20576972656C6573732041636365737320506F696E74102400065254323836301042000831323334353637381054000800060050F20400011011000952616C696E6B415053100800020000103C0001011049000600372A000120
                IE: Unknown: DD07000C4300000000
      Cell 03 - Address: 54:FA:3E:60:F9:B1
                Channel:11
                Frequency:2.462 GHz (Channel 11)
                Quality=21/70  Signal level=-89 dBm  
                Encryption key:on
                ESSID:"HZN249093067"
                Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                          18 Mb/s; 36 Mb/s; 54 Mb/s
                Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
                Mode:Master
                Extra:tsf=00000144750d9416
                Extra: Last beacon: 170ms ago
                IE: Unknown: 000C485A4E323439303933303637
                IE: Unknown: 010882848B961224486C
                IE: Unknown: 03010B
                IE: Unknown: 2A0104
                IE: Unknown: 32040C183060
                IE: Unknown: 2D1AEC0103FFFF0000000000000000000000000000000C0000000000
                IE: Unknown: 3D160B000100000000000000000000000000000000000000
                IE: IEEE 802.11i/WPA2 Version 1
                    Group Cipher : TKIP
                    Pairwise Ciphers (2) : TKIP CCMP
                    Authentication Suites (1) : PSK
                IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00
                IE: Unknown: 0B05000027127A
                IE: Unknown: 7F0101
                IE: Unknown: DD07000C4307000000
                IE: Unknown: 07064E4C20010D10
                IE: Unknown: DDA70050F204104A0001101044000102103B00010310470010BC329E001DD811B2860154FA3E60F9B71021001A43656C656E6F20436F6D6D756E69636174696F6E2C20496E632E1023001743656C656E6F20576972656C65737320415020322E344710240006434C313830301042000831323334353637381054000800060050F20400011011000C43656C656E6F4150322E3447100800024388103C0001011049000600372A000120
      Cell 04 - Address: 64:D1:A3:31:D1:6C
                Channel:8
                Frequency:2.447 GHz (Channel 8)
                Quality=28/70  Signal level=-82 dBm  
                Encryption key:on
                ESSID:"Sitecom31D16A"
                Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                          18 Mb/s; 36 Mb/s; 54 Mb/s
                Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
                Mode:Master
                Extra:tsf=0000000bc7aa0889
                Extra: Last beacon: 20750ms ago
                IE: Unknown: 000D53697465636F6D333144313641
                IE: Unknown: 010882848B961224486C
                IE: Unknown: 030108
                IE: Unknown: 2A0102
                IE: Unknown: 32040C183060
                IE: Unknown: 2D1AEE1117FFFF0000010000000000000000000000000C0000000000
                IE: Unknown: 3D1608050500000000000000000000000000000000000000
                IE: IEEE 802.11i/WPA2 Version 1
                    Group Cipher : CCMP
                    Pairwise Ciphers (1) : CCMP
                    Authentication Suites (1) : PSK
                IE: Unknown: DD180050F2020101800003A4000027A4000042435E0062322F00
                IE: Unknown: 0B0502000C127A
                IE: Unknown: DD07000C4307000000
                IE: Unknown: DDDE0050F204104A00011010440001021057000101103B0001031047001027A9A0BC149D4DD5AB6864D1A331D16A1021001153697465636F6D204575726F70652042561023001F53697465636F6D20576972656C657373204769676162697420526F757465721024001F53697465636F6D20576972656C657373204769676162697420526F757465721042000F574C523430303434333831363239321054000800060050F20400011011001F53697465636F6D20576972656C657373204769676162697420526F7574657210080002228C103C0001011049000600372A000120
      Cell 05 - Address: 88:03:55:E8:3A:D0
                Channel:1
                Frequency:2.412 GHz (Channel 1)
                Quality=30/70  Signal level=-80 dBm  
                Encryption key:on
                ESSID:"VGV7519E83ADB"
                Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                          18 Mb/s; 36 Mb/s; 54 Mb/s
                Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
                Mode:Master
                Extra:tsf=000009e127b72128
                Extra: Last beacon: 1680ms ago
                IE: Unknown: 000D56475637353139453833414442
                IE: Unknown: 010882848B961224486C
                IE: Unknown: 030101
                IE: Unknown: 2A0104
                IE: Unknown: 32040C183060
                IE: Unknown: 2D1A6C0017FFFF0000000000000000000000000000000C0000000000
                IE: Unknown: 3D1601000400000000000000000000000000000000000000
                IE: Unknown: 3E0100
                IE: WPA Version 1
                    Group Cipher : TKIP
                    Pairwise Ciphers (1) : TKIP
                    Authentication Suites (1) : PSK
                IE: IEEE 802.11i/WPA2 Version 1
                    Group Cipher : TKIP
                    Pairwise Ciphers (1) : CCMP
                    Authentication Suites (1) : PSK
                IE: Unknown: DD180050F2020101000003A4000027A4000042435E0062322F00
                IE: Unknown: 0B0504001C127A
                IE: Unknown: 7F0101
                IE: Unknown: DD8F0050F204104A00011010440001021041000100103B0001031047001000000000000000030000880355E83ADB1021000B436F72706F726174696F6E1023000B564756373531394B5732321024000930322E30302E3133361042000A413334343030333035311054000800060050F204000110110014576972656C65737320526F757465722857464129100800020084
                IE: Unknown: 07064E4C20010D10

最佳答案

iwlist wlan0 scan 切换到 iw wlan0 scan,这提供了更清晰的输出。 当我偶然发现来自 Djey1301 的 GitHub 评论时,几乎得到了我想要的结果:29 sept 2016

iw wlan0 扫描 | sed -e 's#(在 wlan# (在 wlan#g' | awk -f scan.awk

扫描.awk:

BEGIN {

    printf("%s|%s|%s|%s|%s|%s|%s|%s|%s|%s\n","MAC","SSID","freq","signal","sig%","WPA","WPA2","WEP","TKIP","CCMP");

}
$1 == "SSID:" { buf = $2; for (i = 3; i <= NF; ++i) { buf = buf" "$i } ; e["SSID"] = buf ; next }
NF > 0{
if ($1 == "BSS") {
if( $2 ~ /^[a-z0-9:]{17}$/ ) {
if( e["MAC"] ){
printf("%s|%s|%s|%s|%s|%s|%s|%s|%s|%s\n",e["MAC"],e["SSID"],e["freq"],e["sig"],e["sig%"],e["WPA"],e["WPA2"],e["WEP"],e["TKIP"],e["CCMP"]);
}
    e["MAC"] = $2;
    e["WPA"] = "n";
    e["WPA2"] = "n";
    e["WEP"] = "n";
    e["TKIP"] = "n";
    e["CCMP"] = "n";
    }
}
if ($1 == "SSID:") {
e["SSID"] = $2;
}
if ($1 == "freq:") {
     e["freq"] = $NF;
}
if ($1 == "signal:") {
     e["sig"] = $2 " " $3;
     e["sig%"] = (60 - ((-$2) - 40)) * 100 / 60;
}
if ($1 == "WPA:") {
     e["WPA"] = "y";
}
if ($1 == "RSN:") {
     e["WPA2"] = "y";
}
if ($1 == "WEP:") {
     e["WEP"] = "y";
}
if ($4 == "CCMP" || $5 == "CCMP") {
     e["CCMP"] = "y";
}
if ($4 == "TKIP" || $5 == "TKIP") {
     e["TKIP"] = "y";
}
}
END {
      printf("%s|%s|%s|%s|%s|%s|%s|%s|%s|%s\n",e["MAC"],e["SSID"],e["freq"],e["sig"],e["sig%"],e["WPA"],e["WPA2"],e["WEP"],e["TKIP"],e["CCMP"]);
}

我几乎满意的结果:

MAC|SSID|freq|signal|sig%|WPA|WPA2|WEP|TKIP|CCMP
9B:5c:44:c5:b8:92|Chinees|2437|-78.00 dBm|36.6667|y|y|n|y|y
89:03:55:e8:3a:d2|VGV7519E83ADB|2412|-83.00 dBm|28.3333|y|y|n|y|y
89:03:55:e8:3a:2b|KPN|2412|-88.00 dBm|20|n|n|n|n|n
62:d1:a3:31:d1:61|Sitecom31D16A|2452|-89.00 dBm|18.3333|n|y|n|n|y

Scheff 的帮助下更新

关于linux - iwlist 输出到列表或变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43548693/

相关文章:

windows - 有没有开源浏览器 GUI 自动化工具支持单击页面上任意位置的特定图标?

: Select only row with digits in a column and multiply those for 1000

bash - 如何使用 sed 或 awk 添加到包含模式的行的末尾?

regex - 使用跨不同行匹配的大括号重新格式化和清理 CSV 文件

linux - 同时循环两个列表

linux - 我们如何在 Linux 上合并 pdf 文件中的 2 页

linux - 循环遍历子目录并为每个子目录创建 jpg 的 PDF

linux - 我怎样才能启动一个不是原始进程子进程的新进程?

bash - 重命名具有各种扩展名的文件

linux - 如何通过 Unix 和 awk 命令有条件地将列中的值替换为同一行中特定列的值