本文共 2053 字,大约阅读时间需要 6 分钟。
显示当前路由器上,client的name,ip,mac,connect_type信息
有两种方式:来自链接
一。通过DHCP client分配列表 (缺点:client列表会根据超时时间刷新,一般超时时间为12h,) 二。通过arp缓存列表/proc/net/arp(缺点:arp刷新时间默认为30s,这个时间的误差可以接受。)主要讲解第二种方法:
Flags: 0x0是找不到这台主机了。 0x2是主机还在线。root@OpenWrt:/# cat /proc/net/arp
IP address HW type Flags HW address Mask Device 192.168.0.188 0x1 0x2 00:e0:4c:68:00:03 * br-lan 192.168.0.30 0x1 0x2 28:ed:6a:e9:ab:fb * br-lan root@OpenWrt:/# root@OpenWrt:/# cat /tmp/dhcp.leases 1525722001 28:ed:6a:e9:ab:fb 192.168.0.30 lin-bo-de 01:28:ed:6a:e9:ab:fb root@OpenWrt:/# connect_type 判断是否是通过WIFI链接的,从iwpriv ra0 show stacountinfo把mac记录下,对比mac是否存在,存在的话是通过WiFi链接的,否则的话不是dmesg -c 表示显示信息后,清除ring buffer中的内容。
char *strupr(char *str)
{ char *orign=str; for (; *str!='\0'; str++) *str = toupper(*str); return orign; } int IsWifi(char *MAC){ char wifimac[BUF_SIZE_128]={0}; char uppermac[BUF_SIZE_128]={0}; char *commond1 = "dmesg -c|iwpriv ra0 show stacountinfo" ; char *commond2 = "dmesg | grep MAC -A 20 | awk '{print $3}' >/tmp/wifista.txt" ; system(commond1); system(commond2); FILE* fd = fopen("/tmp/wifista.txt","r"); if(fd < 0) { return -1; } strcpy(uppermac,strupr(MAC)); while(fgets(wifimac, sizeof(wifimac), fd) != NULL) { if(strncmp(uppermac,wifimac,17) == 0) { my_printf(1, "%s(%d) COMPARE SUCCESED wifiMAC is %s uppermac is %s \n",__FUNCTION__,__LINE__,wifimac,uppermac); return TRUE; }my_printf(1, "%s(%d) wifiMAC is %s mac is %s \n",__FUNCTION__,__LINE__,wifimac,uppermac);
}}
MAC , IP, NAME 分割cat /tmp/dhcp.leases ,获取int get_net_arp_list(char* dst_arp_list)
{ FILE *f=NULL; //char buf[BUF_SIZE_1024] = {0}; //char *buf = NULL; //buf = (char*)malloc(sizeof(char)*1024); if ((f = fopen("/proc/net/arp", "r")) != NULL) { fread(dst_arp_list,1,sizeof(char)*1024,f); //buffer = buf; //dst_dhcp_list = buf; my_printf(LOG_MODE_LEVEL_1, "%s(%d) dst_arp_list is %s \n",__FUNCTION__,__LINE__,dst_arp_list); fclose(f); } return 0; } ———————————————— 版权声明:本文为CSDN博主「linbounconstraint」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/linbounconstraint/article/details/80226967