use*_*909 2 linux bash shell awk
我需要在无线客户端cpe中运行自定义命令以获取以下数据
ESSID,MAC,FREQUENCY,QUALITY,LEVEL,NOISE.
XM.v5.5.8# iwlist ath0 scanning
ath0 Scan completed :
Cell 01 - Address: DC:9F:DB:08:49:DE
ESSID:"Satek"
Mode:Master
Frequency:5.54 GHz (Channel 108)
Quality=28/94 Signal level=-68 dBm Noise level=-92 dBm
Encryption key:on
Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s
36 Mb/s; 48 Mb/s; 54 Mb/s
Extra:bcn_int=100
IE: IEEE 802.11i/WPA2 Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK
Extra:mtik_ie=dd2a000c42000000011e0014000000661a05000041502d43454e54524f2d35000000000000000000
Run Code Online (Sandbox Code Playgroud)
我试试其他论坛的代码
XM.v5.5.8# iwlist ath0 scanning | awk -F '[ :=]+' '/(ESS|Freq|Qual)/{ printf $3" " } /Encr/{ print $4 }'
"Satek" 5.54 28/94 on
"Satek" 5.57 14/94 on
"Satek" 5.6 13/94 on
"Satek" 5.61 9/94 on
"Satek" 5.64 36/94 on
"Satek" 5.68 26/94 on
"Satek" 5.7 9/94 on
"IVICA" 5.825 17/94 on
Run Code Online (Sandbox Code Playgroud)
几乎所有我需要的东西,但我不知道如何获得其他项目,如mac地址信号水平和噪音.
对于需要的值格式的这种差异进行解析,您将需要a awk script或a bash script来为您提供获取所有值所需的灵活性.(你可以在一行中完成,但它会非常混乱).这是一个将解析iwlist和输出的bash脚本mac essid frq chn qual lvl enc.我没有Noise,但你可以按照格式添加它,如果你愿意的话.
用法来自命令行.例如iwlist 'iface' scan | bash parseiwl.sh(其中" iface'为ath0你而parseiwl.sh仅仅是名字我下保存脚本).注意:由于使用了这个脚本[[]],=~因此该脚本是不可移植的,因此仅在bash中使用:
#!/bin/bash
## print header lines
echo ""
echo " mac essid frq chn qual lvl enc"
while IFS= read -r line; do
## test line contenst and parse as required
[[ "$line" =~ Address ]] && mac=${line##*ss: }
[[ "$line" =~ \(Channel ]] && { chn=${line##*nel }; chn=${chn:0:$((${#chn}-1))}; }
[[ "$line" =~ Frequen ]] && { frq=${line##*ncy:}; frq=${frq%% *}; }
[[ "$line" =~ Quality ]] && {
qual=${line##*ity=}
qual=${qual%% *}
lvl=${line##*evel=}
lvl=${lvl%% *}
}
[[ "$line" =~ Encrypt ]] && enc=${line##*key:}
[[ "$line" =~ ESSID ]] && {
essid=${line##*ID:}
echo " $mac $essid $frq $chn $qual $lvl $enc" # output after ESSID
}
done
Run Code Online (Sandbox Code Playgroud)
例:
sudo iwlist wlp23s0 scan | bash parseiwl.sh
mac essid frq chn qual lvl enc
00:14:D1:C6:C8:6F "skyline_633" 2.442 7 54/70 -56 on
Run Code Online (Sandbox Code Playgroud)