V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
nsznsznsz
V2EX  ›  OpenWrt

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

  •  
  •   nsznsznsz · 2015-06-24 04:25:30 +08:00 · 1714 次点击
    这是一个创建于 3425 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我需要在外部设备连接或断开我的路由器的时候做一些额外操作
    可是没找到有什么办法当设备连接或断开的时候通知我的程序

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

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

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

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

    @liqinliqin 这程序只是我自己用 不是商业程序
    1423
        10
    1423  
       2015-06-25 00:18:43 +08:00 via Android
    @nsznsznsz arp 准么?我测试,断开链接后几个小时 arp 还有,但主机名是问号
    我弄了个 pppoe 按需连接的脚本用的是 dhcp ,正常工作一个月左右了
    20150517
        11
    20150517  
       2015-06-25 01:20:30 +08:00 via Android
    @nsznsznsz 我最近也是家用做了一个,远程ssh读一个dhcp文件,然后写到mongo登记所有登录上来的设备
    nsznsznsz
        12
    nsznsznsz  
    OP
       2015-06-25 15:08:08 +08:00 via iPad
    @1423 我的这个arp似乎1分钟以内会刷新一次 我没做过特别设置
    没断线的设备arp表里面那个flag是2
    断线了的是0 几分钟后项目会被删掉
    linkupmylife
        13
    linkupmylife  
       2015-06-26 17:19:37 +08:00
    可以用STP,会有Topology Change Notification提示。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1333 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:49 · PVG 01:49 · LAX 09:49 · JFK 12:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.