找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 20031|回复: 19

求教怎么写自动踢出弱信号的wifi

[复制链接]
多个路由做ap覆盖  手机不能自动切换wifi
想在路由上设置
搜了一下只有 ddwrt 的脚本
  1. #!/bin/sh
  2. #for i in `arp -a | cut -d ' ' -f4`;
  3. for i in `wl_atheros $(nvram get ath0_ifname) assoclist | cut -d" " -f2`;
  4. do
  5. ALL_count=$(wl_atheros rssi $i | cut  -d"-" -f2)
  6. if [ $ALL_count -gt 80 ] ;then
  7. mac=$i
  8. iwpriv ath0 kickmac $i
  9. fi
  10. done
复制代码


谁能帮忙改成 Padavan 也能用的脚本不
 楼主| | 显示全部楼层
for i in `wl_atheros $(nvram get ath0_ifname) assoclist | cut -d" " -f2`;
这段就不能运行的了
arp -a 又拿不到 信号强度
不知道 网络信息-无线 2.4GHz 里面的 AP Main Stations List 是用哪个命令打印出来的
求解答
回复

使用道具 举报

dd这个命令是基于ar的,肯定不能用,既然老毛子可以读取到rssi值,理论上是可以实现的。
回复

使用道具 举报

这个脚本很有必要啊,希望有大神能写出来。
回复

使用道具 举报

坐等大神做出来吧
回复

使用道具 举报

来自手机 | 显示全部楼层
网页那里有个网络信息,里面可以查到信号,看看代码是怎么获取的。
回复

使用道具 举报

本帖最后由 ysc3839 于 2017-7-1 02:37 编辑
ysc3839 发表于 2017-6-30 03:41
网页那里有个网络信息,里面可以查到信号,看看代码是怎么获取的。

看来是不行了,里面代码是调用驱动相关的 API 获取的……
其实有个笨办法,手动加一个asp文件,里面就是输出WiFi信息,然后脚本里用wget获取。
回复

使用道具 举报

本帖最后由 yazipu 于 2017-11-20 17:52 编辑

我刚写的“kickass.sh”使用说明:
参考:http://www.newsmth.net/nForum/#!article/DigiHome/589750
功能:自动踢信号差的客户端,实现WIFI无缝切换
路由:MTK762x,如:newifi mini(Y1)、Phicomm K2
固件:OpenWrt、PandoraBox
工具:WinSCP、PuTTY
脚本:kickass.sh
1、安装bash
     opkg update
     opkg install bash
2、复制kickass.sh到路由器/usr目录下,修改文件权限为755
     chmod 755 /usr/kickass.sh
3、设置crontab每分钟定时器:
     */1 * * * * /usr/kickass.sh
4、请自行设置要踢掉的信号强度
    就是这个数字:-75,例如:
      远:/usr/kickass.sh -80
      中:/usr/kickass.sh -60
      近:/usr/kickass.sh -55
    具体要你自己测试啦!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

yazipu 发表于 2017-10-31 18:22
我刚写的“kickass.sh”使用说明:
参考:http://www.newsmth.net/nForum/#!article/DigiHome/589750
功 ...

感谢分享有空试试
回复

使用道具 举报

yazipu 发表于 2017-10-31 18:22
我刚写的“kickass.sh”使用说明:
参考:http://www.newsmth.net/nForum/#!article/DigiHome/589750
功 ...

这个脚本我试过在7628 openwrt 执行出错 :root@OpenWrt:~# /usr/kickass.sh
rxref: -75
/usr/kickass.sh: line 34: iwpriv: command not found
aplist : wlan0
kicking wlan0 70:81:EB:A6:43:C1
/usr/kickass.sh: line 43: iwpriv: command not found
/usr/kickass.sh: line 44: iwpriv: command not found
kickass finished
回复

使用道具 举报

感谢分享有空试试
回复

使用道具 举报

在openwrt上执行脚本 bash报错。但是我已经安装bash了。

------------------------------
root@OpenWrt:/usr# bash kissass.sh
kissass.sh: line 1: le#!/bin/bash: No such file or directory

root@OpenWrt:/usr# ldd /bin/sh
        /lib/ld-musl-mipsel-sf.so.1 (0x77f14000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x77ef0000)
        libc.so => /lib/ld-musl-mipsel-sf.so.1 (0x77f14000)
看样子bash也没问题,我又upgrade一次,但是仍然不行。
回复

使用道具 举报

OpenWrt官方的SDK不支持iwpriv了,应该用iw命令
回复

使用道具 举报

我也为这个OpenWrt自动剔除弱信号WiFi设备的功能写了个shell脚本 (wifi-kickout),放在github上了:
https://github.com/smallerxie/wifi-kickout

兼容OpenWrt原版的ash shell,不需要额外安装软件包(比如bash);支持多个无线网络(2.4G / 5G),和黑名单/白名单模式。

欢迎试用和交流指导。

回复

使用道具 举报

smallerxie 发表于 2020-4-26 16:37
我也为这个OpenWrt自动剔除弱信号WiFi设备的功能写了个shell脚本 (wifi-kickout),放在github上了:
https ...

如何设置更高频率的剔除,按你这脚本,如果设置1分钟1次的话,不会太慢了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-8 10:59

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表