OpenWRT上判断客户端在线个数,有两种方式:
一。通过DHCP client分配列表 (缺点:client列表会根据超时时间刷新,一般超时时间为12h,)
二。通过arp缓存列表/proc/net/arp(缺点:arp刷新时间默认为30s,这个时间的误差可以接受。)
主要讲解第二种方法:
Flags: 0x0是找不到这台主机了。
0x2是主机还在线。
IP address HW type Flags HW address Mask Device
192.168.235.1 0x1 0x2 00:01:41:80:e3:e9 * eth0.2
10.1.1.191 0x1 0x0 c4:6a:b7:6f:7a:db * br-lan
10.0.2.148 0x1 0x2 c0:3f:d5:31:d8:b2 * br-lan2
所以根据这个flags就可以判断这台主机是否在线,统计非0的就好了。