OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
nsznsznsz
V2EX  ›  OpenWrt

请问怎么在 openwrt 上监控设备的连接与断开?

  •  
  •   nsznsznsz · Jun 24, 2015 · 2772 views
    This topic created in 4044 days ago, the information mentioned may be changed or developed.
    我需要在外部设备连接或断开我的路由器的时候做一些额外操作
    可是没找到有什么办法当设备连接或断开的时候通知我的程序

    我也没找到有什么办法能通过Native API或者命令获取当前连接的设备列表
    也不能通过arp表或者dhcp表来查看 因为它们不是实时变化的

    我现在的方法是每10分钟通过openwrt的web接口获得当前连接的设备列表来检测
    这样能准确获得当前已连接的设备列表 可是这样效率比较低 而且不能快速反应
    不知道openwrt内部是怎么获取的

    求指教
    13 replies    2015-06-26 17:19:37 +08:00
    jasontse
        1
    jasontse  
       Jun 24, 2015 via Android
    # iwinfo wlan0 assoclist
    liqinliqin
        2
    liqinliqin  
    PRO
       Jun 24, 2015
    @jasontse 楼上正解,
    其实也可以通过空中抓包分析,不和是不是连接到当前路由了,根据信号强度RSSI一样可以知道距离。
    slowman
        3
    slowman  
       Jun 24, 2015 via Android
    我用的是 /proc/dhcp.lease
    不知道记错了没 似乎是 /tmp 下的?
    slowman
        4
    slowman  
       Jun 24, 2015 via Android
    @1423 补充。 dhcp租期缩小点。5min这样
    nsznsznsz
        5
    nsznsznsz  
    OP
       Jun 24, 2015
    @jasontse @1423 dhcp.lease和iwinfo我都知道 但是都是要自己定时去取的
    我现在的主要目标不是如何取出连接的信息 而是怎样才能够实时监控连接和断开的境况
    连接和断开的时候应该必然会发生一些事件 我主要想怎么能够监听到这些事件

    @liqinliqin 我的程序是运行在路由器上的...拥有root权限 没有必要去判断信号强度什么的吧...
    20150517
        6
    20150517  
       Jun 24, 2015 via Android
    openwrt开源的,看源代码啊,自己重新编译个
    20150517
        7
    20150517  
       Jun 24, 2015 via Android
    其实你可以读log,log里有信息显示 连接的,但断开连接估计路由自己都不知道
    liqinliqin
        8
    liqinliqin  
    PRO
       Jun 24, 2015
    @nsznsznsz
    还是有必要的,到最后实际用的时候,你的程序有可能不在路由上运行,就在一个角落里面。
    nsznsznsz
        9
    nsznsznsz  
    OP
       Jun 24, 2015
    @20150517 我刚刚试了下 的确可以看到连接的ip和mac地址 断开的时候有时候有显示 有时候又没有 有点奇怪
    log变化得太快 监控log的话不停的读文件效率有点低
    我刚刚想到的新方法是监控arp表 这个比dhcp稍微要准

    @liqinliqin 这程序只是我自己用 不是商业程序
    slowman
        10
    slowman  
       Jun 25, 2015 via Android
    @nsznsznsz arp 准么?我测试,断开链接后几个小时 arp 还有,但主机名是问号
    我弄了个 pppoe 按需连接的脚本用的是 dhcp ,正常工作一个月左右了
    20150517
        11
    20150517  
       Jun 25, 2015 via Android
    @nsznsznsz 我最近也是家用做了一个,远程ssh读一个dhcp文件,然后写到mongo登记所有登录上来的设备
    nsznsznsz
        12
    nsznsznsz  
    OP
       Jun 25, 2015 via iPad
    @1423 我的这个arp似乎1分钟以内会刷新一次 我没做过特别设置
    没断线的设备arp表里面那个flag是2
    断线了的是0 几分钟后项目会被删掉
    linkupmylife
        13
    linkupmylife  
       Jun 26, 2015
    可以用STP,会有Topology Change Notification提示。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1546 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 512acd8b · 44ms · UTC 16:35 · PVG 00:35 · LAX 09:35 · JFK 12:35
    ♥ Do have faith in what you're doing.