Board logo

标题: [问题求助] 如何在局域网内判断其它设备的流量 [打印本页]

作者: sunnyseaman    时间: 2016-8-4 11:23     标题: 如何在局域网内判断其它设备的流量

使用debian系统的nas进行p2p下载,但家里网络带宽有限,需要判断在电视盒子在待机时开启nas下载,播放时暂停nas的下载任务,设想使用debian的crontab进行1min任务调度,但难题是在这情况下,如何用脚本获得盒子的下载速度信息,使用ping命令没有效果,请问有什么办法吗?
作者: 依山居    时间: 2016-8-4 12:42

最简单的方法,判断盒子是不是在线。不在线则开下载。一般如果设备不禁ping响应,默认可以ping可以判断一个设备是不是在线。

复杂的一点的方法,路由器可以得到各个设备的流量等等状态,如果你有能力写脚本从路由器上提取信息,这个也简单的事情。。
作者: sunnyseaman    时间: 2016-8-4 16:47

回复 2# 依山居


    谢谢回复,虽然可以ping设备的在线情况,但无法判断盒子是播放或待机(小米盒子,只要不断电,始终能ping通)状态,就是想用脚本测试下盒子的流量数据以判断它是不是待机中。
    另外,360的网络管家可以读出我路由器的信息,这样目的就达到了,你也说了这一点,但不知道怎么实现的,难道是提取html信息吗?(路由器不能telnet)
作者: codegay    时间: 2016-8-4 17:39

回复 3# sunnyseaman


    360的网络管家
你指的是路由器卫士?
作者: codegay    时间: 2016-8-6 18:03

普通家用路由器一般默认没有TELNET。
路由器卫士要求用户输入路由的用户密码。也是从HTTP访问然后提取信息。

我没用过盒子,但是猜这类盒子可能有http管理界面或者接口,如果有的话,也能通过来取得状态。

因为不型号品牌的路由器界面和接口不一样,所以不同的路由器需要写不同的代码。

目前好像没有通用的程序或者库用来提取路由器的状态和信息。我有想法做一套python用来提取路由器。但是我手上只极路由。近期估计会尝试写一个极路由的库。
作者: GNU    时间: 2016-8-6 20:42

回复 3# sunnyseaman


    没用过盒子不太清楚。如果有URL可以访问的话,分析htm页面信息倒有可能是一个可行的方案。
作者: sunnyseaman    时间: 2016-8-6 23:13

本帖最后由 sunnyseaman 于 2016-8-6 23:15 编辑

没有好办法,先用ping工作吧,谢谢大家的回复,下面的脚本在cron调度下有效:
#!/bin/sh
COMMAND="transmission-remote 127.0.0.1:9091 --auth=root:toor"
busyjob=`ping -c 2 192.168.1.99|grep received|awk '{print $4}'`
if [ $busyjob -eq 0 ]; then
                if [ -f "/tmp/boxbusy" ]; then
                        rm /tmp/boxbusy
                        transmission-remote 127.0.0.1:9091 --auth=root:toor -D -U
                fi
        else
                if [ ! -f "/tmp/boxbusy" ]; then
                        echo runhalf >/tmp/boxbusy
                        transmission-remote 127.0.0.1:9091 --auth=root:toor -d 50 -u 10
                fi
fi




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2