我目前正在使用kali Linux2.0开发一个bash脚本项目。我的脚本基本上是扫描网络,当它找到一个网络时,它应该以某种方式将它的ESSID、BSSID和Channel存储在一起。然后,它在每个网络的命令中使用BSSID、ESSID和Channel。我已经做了最好的研究,以找到如何为每个网络存储这些详细信息。我知道这可以通过创建数据库或表来完成,尽管我对它们的了解非常有限。所以我试着使用grep和awk -
`b=$(iwlist <interface> scan|grep Address|awk '{ print $5 }')
echo $b`
它按以下顺序输出bssids
`xx:xx:xx:xx:xx:xx xx:xx:xx:xx:xx:xx xx:xx:xx:xx:xx:xx xx:xx:xx:xx:xx:xx xx:xx:xx:xx:xx:xx`
不使用grep和awk进行过滤:
`wlan2 Scan completed :
Cell 01 - Address: xx:xx:xx:xx:xx:xx
Channel:xx
Frequency:2.462 GHz (Channel xx)
Quality=24/70
Signal level=-86 dBm
Encryption key:on
ESSID:"xxxx"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s
Mode:Master`
但这对我帮助不大。相反,我希望它是这样的:
`bssid1=xx:xx:xx:xx:xx:xx
chan1=X
bssid2=xx:xx:xx:xx:xx:xx
chan2=x
.
.
.
.`
并且脚本中这些变量的数量将随着扫描的网络数量的增加而增加。我的问题是,如何构建一个脚本来将Channel、BSSID和ESSID分别存储为使用bash的每个网络的变量?
https://stackoverflow.com/questions/32437954
复制相似问题