如何使用openwrt路由系統剔除弱信號設備?

如何使用openwrt路由系統剔除弱信號設備?php

 

在github上有一段kickass.sh代碼(bash腳本)https://github.com/Quenii/kickassgit

代碼爲:github

#!/bin/bash
while true;
do
    maclist=(`iw dev wlan0 station dump | grep "Station" | cut -f 2 -s -d " "`)
    rxlist=(`iw dev wlan0 station dump | grep "signal:" | cut -f 3 -s -d " "`)
    #maclist=(`iwinfo wlan0 assoclist | grep "dBm" | cut -f 1 -s -d " "`)
    #rxlist=(`iwinfo wlan0 assoclist | grep "dBm" | cut -f 3 -s -d " "`)
    rxref="-80"  #threshold
    len=${#maclist[@]}
    for((i=0;i<$len;i++))
    do
        mac=${maclist[$i]}
        rx=${rxlist[$i]}
        # here, use string comparation, simple but error prone
        if [[ "$rx" > "$rxref" ]]; then
            #echo $mac $rx
            ubus call hostapd.wlan0 del_client '{"addr":"'"$mac"'", "reason": 5, "deauth": True, "ban_time": 3000}'
            #ubus call hostapd.wlan0 list_bans
        fi
    done
    sleep 1
done

使用方法:bash

一、執行opkg update,而後opkg install bash和opkg install iwinfo兩條安裝指令spa

二、將kickass.sh文件,下載到/usr/文件夾下面,修改權限爲755..net

chmod 755 /use/kickass.shcode

三、修改程序代碼中rxref的值爲想要設置剔除的信號強度值;blog

四、/etc/re.local文件是openwrt系統啓動執行的文件,在裏面寫上執行命令,便可在openwrt啓動時執行命令:路由

      bash kickass.shget

五、重啓路由器以後,便可。

 

可經過iwinfo wlan0 assoclist 命令來查看客戶端是否鏈接

 

 

相關參考連接:

http://www.newsmth.net/nForum/#!article/DigiHome/589750#_motz_

 

http://www.right.com.cn/FORUM/forum.php?mod=viewthread&tid=207711&page=1#pid1918514

相關文章
相關標籤/搜索