datocp
2015-12-16 15:42:01 +08:00
这些都是 atheros 芯片的特有命令,没戏的。好久不用 tomato 了,建议使用 openwrt 好点,因为有时候一些特殊的命令可能会被精简掉。对于信号判断现在脑袋没一点印象,一般到 /usr/bin /usr/sbin 看看有没有带 wl iwpriv wirelss 之类的命令看是否有客户端信号强度输出,然后再根据 SNR 值判断一下就可以了。
这是针对 ddwrt build 14929 之前版本的,之后的就不存在 iwpriv 命令了,而且这些都是 athroes 芯片特有的命令,基本原理差不多,通过 SNR 判断客户端信号强度,然后将客户端加入黑名单然后踢除。
openwrt 通用的踢除命令在 hostpad-utils 包里。
#!/bin/sh
nvram get ath0_maclist > /tmp/ath0_maclist
cat /tmp/ath0_maclist
#for i in `arp -a | cut -d ' ' -f4`;
for i in `wl_atheros $(nvram get ath0_ifname) assoclist | cut -d" " -f2`;
do
ALL_count=$(wl_atheros rssi $i | cut -d"-" -f2)
if [ $ALL_count -gt 10 ] ;then #设置 rssi 多少则条件成立
mac=$i
sed -i "s/$/ $mac/g" /tmp/ath0_maclist
echo "$i rssi: -$ALL_count";
#iwpriv ath0 kickmac $i
fi
done
#rc restart #start stop
cat /tmp/ath0_maclist