路由器网桥模式下无线终端类型的识别系统及方法_2

文档序号:9618588阅读:来源:国知局
单元、以及所述无线通信单元连接,所述查询单元用于根据所述解析值和所述无线终端的MAC地址在所述本地数据库中查询以获得本地查询结果,并将所述本地查询结果通过所述无线通信单元发送至所述云端服务器,所述查询单元根据所述云端服务器的反馈结果进行对应的处理,若所述云端服务器反馈云端查询结果与所述本地查询结果不一致,则所述查询单元将所述云端查询结果替换所述本地查询结果以更新所述本地数据库。
[0043]如上所述,本发明的一种路由器网桥模式下无线终端类型的识别系统及方法,具有以下有益效果:
[0044]本发明的路由器网桥模式下无线终端类型的识别系统及方法,当路由器工作在网桥模式下,Android手机、iPhone等无线终端连接上此路由器后,路由器能够通过无线终端与DHCP服务器交互的DHCP报文,从中解析出有用的信息,然后分别在路由器本地数据库里查询和云端服务器数据库里查询,通过两者查询结果来进行相应的设备类型更新,从而判断出该手机的设备类型是Android、iPhone等类型终端。本发明保证本地数据库不断更新,从而提高终端类型识别的正确率,随着数据库数据条数的增多,自动识别类型的准确率会不断提高,当路由器同Internet断开时,可以通过本地数据库查询识别终端类型,解决了断网后无法知晓终端类型的问题。
【附图说明】
[0045]图1为本发明路由器网桥模式下无线终端类型的识别系统的结构框图。
[0046]图2为本发明路由器网桥模式下无线终端类型的识别方法的流程图。
[0047]图3为本发明路由器网桥模式下无线终端类型的识别方法中内核数据过滤处理流程图。
[0048]图4为本发明路由器网桥模式下无线终端类型的识别方法中终端类型识别查询比对处理流程图。
[0049]元件标号说明
[0050]11数据过滤单元
[0051]12数据解析单元
[0052]13无线通信单元
[0053]14本地数据库
[0054]15查询单元
[0055]16云端服务器
[0056]S21 ?S23 步骤
[0057]S301 ?S314 步骤
[0058]S401 ?S410 步骤
【具体实施方式】
[0059]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0060]需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0061]请参阅图1,本发明提供一种路由器网桥模式下无线终端类型的识别系统及方法,用于对无线终端类型识别,即对接入该路由器的终端(如带有WIFI功能的手机、笔记本电脑、平板电脑、台式计算机等)进行类型匹配,若此时路由器工作在网桥模式下,Android手机、iPhone等无线终端连接上此路由器后,路由器能够通过无线终端与DHCP服务器交互的DHCP报文,从中解析出有用的信息,然后分别在路由器本地数据库里查询和云端服务器数据库里查询,通过两者查询结果来进行相应的设备类型更新,从而判断出该手机的设备类型是Android、iPhone等类型终端。下面结合附图对本发明路由器网桥模式下无线终端类型的识别系统及方法进行说明。
[0062]如图1所示,本发明一种路由器网桥模式下无线终端类型的识别系统包括数据过滤单元11、数据解析单元12、无线通信单元13、本地数据库14、查询单元15、以及云端服务器16,数据过滤单元11与路由器连接,数据解析单元12与数据过滤单元11连接,无线通信单元13与数据解析单元12连接,无线通信单元13与云端服务器16无线通信连接,查询单元15与数据解析单元12、无线通信单元13、以及查询单元15连接。
[0063]数据过滤单元11用于在网桥模式下,抓取路由器转发的所有通讯数据包并从中过滤得到无线终端与DHCP服务器交互的DHCP请求数据包;数据过滤单元11中包括来源判断模块、地址判断模块、用户包判断模块、端口号判断模块、以及信息类型判断模块。
[0064]来源判断模块与路由器的内核连接,用于获取由内核转发的所有通讯数据包,并对所有的通讯数据包进行逐一判断,判断通讯数据包是否为来自无线局域网,若是,则将通讯数据包发送给地址判断模块,若否,则对通讯数据包放行;地址判断模块与来源判断模块连接,用于对从来源判断模块发送来的通讯数据包进行判断,判断通讯数据包中的源IP地址是否为0.0.0.0和目的IP地址是否为255.255.255.255,若源IP地址和目的IP地址均为是,则将通讯数据包发送给用户包判断模块,若源IP地址和目的IP地址中的任一为否,则对通讯数据包放行;用户包判断模块与地址判断模块连接,用于对从地址判断模块发送来的通讯数据包进行判断,判断通讯数据包是否为用户数据包,若是,则将通讯数据包发送给端口号判断模块,若否,则对通讯数据包放行;端口号判断模块与用户包判断模块连接,用于对从用户包判断模块发送来的通讯数据包进行判断,判断通讯数据包的源端口号是否为68和目的端口号是否为67,若源端口号和目的端口号均为是,则将通讯数据包发送给信息类型判断模块,若源端口号和目的端口号中任一为否,则对通讯数据包放行;信息类型判断模块与端口号判断模块连接,用于对从端口号判断模块发送来的通讯数据包进行判断,判断通讯数据包中的信息类型字段是否为请求数据包,若是,则得到了 DHCP请求数据包,若否,则对通讯数据包放行。
[0065]数据解析单元12用于对经过数据滤单元11过滤到的DHCP请求数据包进行解析以得到对应的解析值;数据解析单元12包括主机名解析模块、请求参数解析模块、以及厂商解析模块;主机名解析模块用于对DHCP请求数据包中的主机名字段(0pt1nl2)进行解析以得出对应的主机名字段值;请求参数解析模块用于对DHCP请求数据包中的附加请求参数(0pt1n55)字段进行解析以得出对应的附加请求参数字段值;厂商解析模块用于对DHCP请求数据包中的厂商识别字段(0pt1n60)进行解析以得出对应的厂商识别字段值。
[0066]无线通信单元13用于将得到的解析值和无线终端的MAC地址一起发送至云端服务器16,以使得云端服务器16对无线终端的类型进行查询进而获取无线终端的类型。较佳地,还包括与数据解析单元12和无线通信单元13连接的用户态单元,用于接收数据解析单元12解析出的主机名字段值、附加请求参数字段值、以及厂商识别字段值和获取无线终端的MAC地址,并将接收到的主机名字段值、附加请求参数字段值、以及厂商识别字段值和无线终端的MAC地址发送给无线通信单元13,通过无线通信单元13将信息传送给云端服务器16。
[0067]查询单元15用于根据解析值和无线终端的MAC地址在本地数据库14中查询以获得本地查询结果,并将本地查询结果通过无线通信单元13发送至云端服务器16,查询单元15根据云端服务器16的反馈结果进行对应的处理,若云端服务器16反馈云端查询结果与本地查询结果不一致,则查询单元将云端查询结果替换本地查询结果以更新本地数据库。
[0068]本发明涉及到网桥模式下解析DHCP报文,首先需要抓取到DHCP request数据包,本文中路由器以嵌入式linux系统为系统软件,要解析数据包,那么需要在linux内核态相关模块注册内核Η00Κ函数(又名“钩子函数”),本发明基于嵌入式linux系统内核netfileter包过滤,Η00Κ函数注册到NF_IP_F0RWARD (转发)点,然后就可以从Η00Κ函数参数中解析DHCP报文了。由于Η00Κ函数抓到的数据包是内核转发的所有数据包,因此我们首要的就是要过滤掉不需要的数据包,注册钩子函数后,DHCP包过滤ko模块即数据过滤单元便可生成,在系统上电启动后加载此模块,Η00Κ函数的参数中已经可以抓取到经过路由器转发的数据包。
[0069]数据过滤单元11的工作原理,在解析数据包时,首先因本发明的识别系统仅针对无线终端,所以对数据包是来自有线LAN侧还是无线LAN侧进行判断,若是有线LAN侧的包就直接放行,结束此包的处理流程,否则就继续判断。通过上面的判断后,继续解析此数据包,解析出数据包的源IP地址,如果该数据包的源IP地址不是0.0.0.0且目的IP地址不是255.255.255.255 (广播地址),那么就对此包进行放行,结束此包处理流程,因为DHCP Request包(DHCP请求数据包)的源IP地址一定是0.0.0.0,目的IP地址是255.255.255.255 ;通过判断后继续解析此数据包,由于DHCP协议是基于UDP协议,如果是TCP包,那么直接放行,放行是指让数据包顺利通过路由器,不对其进行拦截处理,结束此包的处理流程,若是UDP包则继续判断,继续解析此数据包,解析出源端口号和目的端口号,如果源端口号和目的端口号分别不为68和67,那么直接放行数据包,结束此包处理流程,因为DHCP请求数据包的由DHCP客户端也就是无线终端发送到DHCP服务器的包,而此包按照DHCP协议,源端口号一定是68,目的端口号一定是67。通过判断后继续解析此数据包,解析Opt1n53字段,判断其值是否为3 (Request包),如果不是3,则直接放行数据包,结束处理流程,若是就获得了 DHCP请求数据包。经过了以上步骤处理,大部分对于终端类型识另IJ “无用”的数据包已经过滤掉,这样处理的好处是可以提高路由器系统的运行效率,毕竟对数据包的处理会占用一定的系统资源,处理完成后,只剩下DHCP Reques
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1