- 论坛徽章:
- 0
|
本帖最后由 safeqq2 于 2017-03-02 09:14 编辑
代码如上,其目的是为了对比amacdd和wmacdd的地址信息,然后根据对比结果符合的找出aipadd 的ip地址,然后进行ping测试,测试完成后再判断无线信号的强度和incativetime 然后踢掉符合条件的客户端。但在 循环体 smacadd=`echo $amacdd|awk '{print '$'$y}'` 这里两句的时候出现了问题 print '$'$y 是否不能够作为 $1 $2 这样的取域参数提交给awk返回我希望的MAC地址,换了N中方法和整整一天的查询资料测试也是无果,只能打搅你们这些大神的休息了,C/C++还可以但LINUX SHELL自叹不如还请大神给些指引谢谢了, 代码中好像自动剔除了一个$, smacadd=`echo $amacdd|awk '{print '$'$y}'`|dmacadd=`echo $wmacdd|awk '{print '$'$x}'`|echo "A:"$smacadd "B:"$dmacadd "xxxxxx" "Y:"'$'$y "X:"'$'$x
- #!/bin/sh
- cat /proc/net/arp|grep 0x2|grep br-lan|grep 192.168.36.|cut -b 0-128
- aipadd=`cat /proc/net/arp|grep 0x2|grep br-lan|grep 192.168.36.|awk '{print $1}'`
- amacdd=`cat /proc/net/arp|grep 0x2|grep br-lan|grep 192.168.36.|awk '{print $4}'`
- wmacdd=`iw dev wlan0 station dump|grep Station|awk '{print $2}'`
- wintim=`iw dev wlan0 station dump|grep "inactive time:"|awk '{print $3}'`
- wsiavg=`iw dev wlan0 station dump|grep "signal avg:"|awk '{print $3}'`
- adping=`echo $aipadd|awk '{print "ping -4 -c 4 -w 4 "$1}'`
- $adping
- i=0
- n=0
- len0=`echo $amacdd|awk '{print NF}'`
- len1=`echo $wmacdd|awk '{print NF}'`
- echo $amacdd
- echo $wmacdd
- x=1
- y=1
- while [ $i -lt $len1 ];do
- n=0
- y=1
- while [ $n -lt $len0 ];do
- smacadd=`echo $amacdd|awk '{print '$y}'`
- dmacadd=`echo $wmacdd|awk '{print '$x}'`
- echo "A:"$smacadd "B:"$dmacadd "xxxxxx" "Y:"'$y "X:"'$x
- let n=n+1
- let y=n+1
- done
- let i=i+1
- let x=i+1
- done
- exit 0
复制代码 |
|