如何使用openwrt路由系统剔除弱信号设备?

在github上有一段kickass.sh代码(bash脚本)https://github.com/Quenii/kickass

代码为:

#!/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

使用方法:

1、执行opkg update,然后opkg install bash和opkg install iwinfo两条安装指令

2、将kickass.sh文件,下载到/usr/文件夹下面,修改权限为755.

chmod 755 /use/kickass.sh

3、修改程序代码中rxref的值为想要设置剔除的信号强度值;

4、/etc/re.local文件是openwrt系统启动执行的文件,在里面写上执行命令,即可在openwrt启动时执行命令:

bash kickass.sh

5、重启路由器之后,即可。

可通过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

原文地址:https://www.cnblogs.com/oneseven/p/8974740.html

时间: 2024-10-18 11:50:38

如何使用openwrt路由系统剔除弱信号设备?的相关文章

OpenWRT 路由系统上抓包

前言: 做路由器开发,难免会遇到抓包的情况,但是抓包需要有Hub或者无线抓包网卡,调试无线问题,且目前手中没有无线抓包网卡,怎么办?那不能分析无线连接建立的过程,我们就来分析下,其传输的数据,肯定是从ra0无线接口来进行了. 准备: 编译tcpdump.ipk, libpcap.ipk并且安装到OpenWRT系统中. 可选传输方式scp, wget等. wget http://<web server>/target_file opkg install <package_name>.

酷痞运行于openwrt路由系统

欢迎你进入酷痞的物联网世界.这里有着自由的空气和自然的气息.接下来我将告诉你如果一步步建立一个自己专属的物联网平台. 酷痞官网地址:http://icoolpy.com   由于openwrt系统复杂性真不知道怎么开始说起.只能通过一个个应用例子来说明运行的方式及配置的方式: 1.使用酷痞提供的固件运行酷痞物联系统 a.进入酷痞官网点击openwrt版下载地址: 这里先说明这么多文件他们是什么: a1.NodeForOpenwrt此文件夹下有两个文件,如果有很幸运同样有一个已经刷好openwrt

ASP.NET Web API路由系统:路由系统的几个核心类型

虽然ASP.NET Web API框架采用与ASP.NET MVC框架类似的管道式设计,但是ASP.NET Web API管道的核心部分(定义在程序集System.Web.Http.dll中)已经移除了对System.Web.dll程序集的依赖,实现在ASP.NET Web API框架中的URL路由系统亦是如此.也就是说,ASP.NET Web API核心框架的URL路由系统与ASP.NET本身的路由系统是相对独立的.但是当我们采用基于Web Host的方式(定义在程序集System.Web.H

ASP.NET路由系统实现原理:HttpHandler的动态映射

我们知道一个请求最终通过一个具体的HttpHandler进行处理,而我们熟悉的用于表示一个Web页面的Page对象就是一个HttpHandler,被用于处理基于某个.aspx文件的请求.我们可以通过HttpHandler的动态映射来实现请求地址与物理文件路径之间的分离.实际上ASP.NET路由系统就是采用了这样的实现原理.如下图所示,ASP.NET路由系统通过一个注册到当前应用的自定义HttpModule对所有的请求进行拦截,并通过对请求的分析为之动态匹配一个用于处理它的HttpHandler.

在openwrt路由中加入n2n,并在ubuntu里加入n2n服务,实现开机联网互通互访

在openwrt路由中加入n2n,并在ubuntu里加入n2n服务,实现开机联网互通互访 1.openwrt的硬件环境: 将自己的WR703N刷入openwrt(这里需要修改FLASH芯片,换个8M的FLASH): 刷机后,安装openwrt,此教程网上一大堆,无需说明了,TELNET进入,并开启SSH后,root登陆. 2.安装n2n到openwrt中: [email protected]:~# opkg update <-----如果不能升级,请运行下条命令,查看源是否正确: [email 

Django进阶(路由系统、中间件、缓存、Cookie和Session

路由系统 1.每个路由规则对应一个view中的函数 url(r'^index/(\d*)', views.index), url(r'^manage/(?P<name>\w*)/(?P<id>\d*)', views.manage), url(r'^manage/(?P<name>\w*)', views.manage,{'id':333}), 2.根据app对路由规则进行一次分类 rl(r'^web/',include('web.urls')), 1.每个路由规则对应

ASP.NET MVC - 路由系统

ASP.NET MVC的请求URL不再对应于传统ASP.NET程序的ASPX文件物理地址,而是把请求映射到一个控制器(Controller)类的方法(Action)上,Controller.Action再加上参数构成ASP.Net MVC请求的Url.下面我们来看下路由系统的主要对象. UrlRoutingModule ASP.NET MVC框架的路由实质是从传统ASP.NET管道扩展HttpModule而来,这个模块正是UrlRoutingModule.通过反编译可以看到UrlRoutingM

ASP.NET的路由系统:路由映射

总的来说,我们可以通过RouteTable的静态属性Routes得到一个基于应用的全局路由表,通过上面的介绍我们知道这是一个类型的RouteCollection的集合对象,我们可以通过调用它的MapPageRoute进行路由映射,即注册URL模板与某个物理文件的匹配关系.路由注册的核心就是在全局路由表中添加一个Route对象,该对象的绝大部分属性都可以通过MapPageRoute方法的相关参数来指定.接下来我们通过实现演示的方式来说明路由注册的一些细节问题. 目录 一.变量默认值 二.约束 三.

路由系统

路由系统 根据Django约定,一个WSGI应用里最核心的部件有两个:路由表和视图.Django框架 的核心功能就是路由:根据HTTP请求中的URL,查找路由表,将HTTP请求分发到 不同的视图去处理: 路由系统分类很多,常见的有基本单一路由,正则路由,带额外参数路由,二层三层路由还有通过反射机制来完成的动态路由. 1.单一路由 url(r'^index$', views.index), 2.基于正则的路由 url(r'^index/(\d*)', views.index), url(r'^ma