CN115022226A - 获取路由器在线终端列表的方法、装置、设备及存储介质 - Google Patents
获取路由器在线终端列表的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115022226A CN115022226A CN202210616991.0A CN202210616991A CN115022226A CN 115022226 A CN115022226 A CN 115022226A CN 202210616991 A CN202210616991 A CN 202210616991A CN 115022226 A CN115022226 A CN 115022226A
- Authority
- CN
- China
- Prior art keywords
- hash
- list
- node
- router
- online terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
Abstract
本发明提供的获取路由器在线终端列表的方法、装置、设备及存储介质,包括:在网络层入口处,接收LAN侧的网络数据包;读取网络数据包以获取发送网络数据包的在线终端的列表信息;计算IP地址对应的哈希值,以查询哈希列表中是否存在相关哈希结点后,更新哈希列表。本发明于网络协议栈的网络层入口处,获取所有LAN侧的网络数据包相关的IP地址进行哈希操作,然后发送网络连接消息到用户态模块以告知终端上线,并记录终端的列表信息到哈希结点中,无需定时手动去轮询无线接口来查询所有连接的终端,而是根据网络数据包来实时、准确地进行在线终端列表的更新,从而实现对所有客户端信息的掌握,不会过多占用系统资源,响应速度更快。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种获取路由器在线终端列表的方法、装置、设备及存储介质。
背景技术
路由器,是现代家庭连接互联网的入口,也是连接家庭智能设备的枢纽,为手机、平板,电脑、电视等提供上网业务。近年来,随着智能家居的兴起,需要接入互联网的家用电器越来越多。在线终端列表是指由路由器展示所有接入该路由器的所有与之连接的在线终端设备的列表。如何实时、准确地展示所有在线终端设备成为路由器的终端管理的核心问题点。
现有的路由器的在线终端列表的解决方案,大多采用定时去轮询无线接口,以查询所有在线终端的方式来实现。其中,查询无线客户端、查询动态分配客户端,进而确认设备是否离线,则需要定时手动的去查询探测,所采用的查询探测包括网络控制报文协议(Internet Control Message Protocol,ICMP)探测、地址解析协议(Address ResolutionProtocol,ARP)探测等。
现有的通过查询探测构建在线终端列表的方式,不仅效率低下,而且占用大量CPU资源。像ICMP探测如果遇到设备禁止PING行为,则根本无法探测。另外,在现有的解决方案的基础上,一旦无线路由器接入大量有线或无线设备,则占用大量系统资源,系统会被活活拖垮。
发明内容
本发明提供一种获取路由器在线终端列表的方法、装置、设备及存储介质,用以解决目前主流的在线终端列表的方式所存在的系统资源占用量大、实时性不强地缺陷。
第一方面,本发明提供一种获取路由器在线终端列表的方法,应用于路由器中的内核态模块,包括:
在内核网络协议栈的网络层入口处,接收LAN侧的网络数据包;
读取所述网络数据包,以获取发送所述网络数据包的在线终端的列表信息,所述列表信息包括所述在线终端的IP地址;
计算所述IP地址对应的哈希值,以查询哈希列表中是否存在与所述哈希值对应的哈希结点后,基于查询结果更新所述哈希列表;
所述哈希列表是连接至路由器的所有在线终端的列表。
根据本发明提供的获取路由器在线终端列表的方法,所述计算所述IP地址对应的哈希值,以查询哈希列表中是否存在与所述哈希值对应的哈希结点后,基于查询结果更新所述哈希列表,包括:
在确定所述查询结果为哈希列表中存在与所述哈希值对应的哈希结点后,则利用所述列表信息更新第一目标哈希结点,并将所述第一目标哈希结点的结点状态由非激活状态转换为激活状态;所述第一目标哈希结点为所述哈希值对应的哈希结点;
在确定所述查询结果为哈希列表中不存在与所述哈希值对应的哈希结点后,则在所述哈希列表中新建第二目标哈希结点后,将所述列表信息加载至所述第二目标哈希结点,并设置所述第二目标哈希结点的结点状态为激活状态。
根据本发明提供的获取路由器在线终端列表的方法,所述列表信息包括所述在线终端的名称、客户端类型信息、物理地址、IP地址、关联设备信息中的至少一种。
根据本发明提供的获取路由器在线终端列表的方法,在基于查询结果更新所述哈希列表之后,还包括:
发送网络连接消息至路由器中的用户态模块,所述网络连接消息为所述在线终端上线的消息。
根据本发明提供的获取路由器在线终端列表的方法,周期性遍历所述哈希列表中的每个所述哈希结点,以确定在预设时长内是否接收到与各所述哈希结点所对应的各在线终端所发送的网络数据包;
若确定在所述预设时长内,未收到任一目标在线终端所发送的网络数据包,则删除与所述目标在线终端相关的哈希结点;所述任一目标在线终端是各在线终端中的任一个,所述目标在线终端相关的哈希结点的结点状态为激活状态。
根据本发明提供的获取路由器在线终端列表的方法,在删除与所述目标在线终端相关的哈希结点之后,还包括:
发送网络断开消息至路由器中的用户态模块,所述网络断开消息为所述目标在线终端离线的消息。
根据本发明提供的获取路由器在线终端列表的方法,若确定在所述预设时长内,收到任一目标在线终端所发送的网络数据包,则将所述目标在线终端相关的哈希结点的结点状态由激活状态转换为非激活状态。
第二方面,本发明还提供一种获取路由器在线终端列表的装置,包括:
数据采集单元,用于在内核网络协议栈的网络层入口处,接收LAN侧的网络数据包;
信息读取单元,用于读取所述网络数据包,以获取发送所述网络数据包的在线终端的列表信息,所述列表信息包括所述在线终端的IP地址;
列表更新单元,用于计算所述IP地址对应的哈希值,以查询哈希列表中是否存在与所述哈希值对应的哈希结点后,基于查询结果更新所述哈希列表;
所述哈希列表是连接至路由器的所有在线终端的列表。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述获取路由器在线终端列表的方法的步骤。
第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述获取路由器在线终端列表的方法的步骤。
本发明提供的获取路由器在线终端列表的方法、装置、设备及存储介质,于网络协议栈的网络层入口处,获取所有LAN侧的网络数据包相关的IP地址进行哈希操作,然后发送网络连接消息到用户态模块以告知终端上线,并记录终端的列表信息到哈希结点中,无需定时手动去轮询无线接口来查询所有连接的终端,而是根据网络数据包来实时、准确地进行在线终端列表的更新,从而实现对所有客户端信息的掌握,不会过多占用系统资源,响应速度更快。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的获取路由器在线终端列表的方法的流程示意图之一;
图2是本发明提供的获取路由器在线终端列表的方法的流程示意图之二;
图3是本发明提供的定时器的工作流程示意图;
图4是本发明提供的获取路由器在线终端列表的装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明实施例的描述中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。
通过2.4G频段接入路由器的客户端(也称客户终端,简称终端),称之为2.4G客户端。同理,可以得出路由器的客户端,按照客户端类型主要可分为:有线客户端、2.4G客户端以及5G客户端等。
客户端要想接入互联网,首先需要获取IP地址,根据客户端从路由器获取IP地址方式的不同,则可以将其分为动态地址客户端和静态地址客户端。路由器的终端管理,就是要实时、准确地掌握所有客户端的相关信息。
下面结合图1-图5描述本发明实施例所提供的获取路由器在线终端列表的方法、装置、设备及存储介质,以实现对于路由器的智能终端管理。
图1是本发明提供的获取路由器在线终端列表的方法的流程示意图之一,应用于路由器中的内核态模块,如图1所示,包括但不限于以下步骤:
步骤101:在内核网络协议栈的网络层入口处,接收LAN侧的网络数据包。
当一个进程在执行用户的程序代码时,处于用户运行态(即用户态)。在操作系统的设计中,为了保障路由器的操作系统(以下均简称为系统)的稳定性,尤其是在多用户环境中的可靠性,系统根据CPU的指令类型来抽象并实现了用户态和内核态两种代码运行模式,对应的虚拟模块称作内核态模块和用户态模块,两种模块之间的切换也成为模式切换。
其中,内核网络协议栈是指内核态模块中网络各层协议的总和,其形象的反映了一个网络的数据传输过程。
用户态模块被限制了可以执行的操作以及可以访问的资源范围,而内核态模块则可以执行任何操作并且没有资源使用上的限制。
具体地,内核态模块主要运行系统程序,且操作硬件;而用户态模块则仅用于运行用户程序。当在系统中执行一个程序时,大部分时间是运行在用户态模块中的,在其需要操作系统帮助完成一些用户态而用户态模块没有特权和能力完成的操作时,就会切换到内核态模块。
本发明所提供的获取路由器在线终端列表的方法,其执行主体可以视作为路由器中的内核态模块,可通过内核态模块与用户态模块的联动,实现在线终端列表的创建、更新以及展示。
在步骤101中,内核态模块基于LINUX的内核网络协议栈,通过在内核网络协议栈的网络层入口处,接收所有LAN侧(即非WAN口)的网络数据包。
步骤102:读取所述网络数据包,以获取发送所述网络数据包的在线终端的列表信息。
所述列表信息至少包括所述在线终端的IP地址。
针对任一网络数据包并对其进行解析,主要获取发送该网络数据包至路由器的在线终端的设备信息以及网络连接信息等列表信息。
由于任一在线终端在通过路由器连接互联网时,具有唯一的IP地址,故本发明可以通过获取在线终端的IP地址,以根据该IP地址进行在线终端列表的生成。
步骤103:计算所述IP地址对应的哈希值(hash值),以查询哈希列表(hash table)中是否存在与所述hash值对应的哈希结点(hash node)后,基于查询结果更新所述hashtable。
其中,所述hash table是连接至路由器的所有在线终端的列表,hash table是预先存储在内核态模块中的。
具体地,本发明通过预设的hash算法,通过计算所采集到的网络数据包相关的在线终端的IP地址所对应的hash值,然后通过查询hash table,以确定在hash table中是否存在所计算出的hash值。
需要说明的是,本发明并不对所采用的hash算法作具体的限定,如可以采用MD5系列算法或者SHA系列算法,仅需遵循算法高效即可。
在确定hash table中存在该hash值的情况下,就可以进一步从hash table中确定该hash值所对应的hash node。
然后,利用当前所获取到的在线终端的列表信息对hash node中所存储的该在线终端原来的列表信息进行实时更新。
另外,在确定hash table中不存在该hash值的情况下,可以通过在hash table中创建一个新的hash node,并将所获取到的在线终端的列表信息加载至该hash node中。
基于上述操作,将所获取到的新的hash table导出,就可以获取到所需要的在线终端列表,该在线终端列表中记载了当前与路由器建立通信连接的所有在线终端的列表信息。
作为一种可选实施例,上述列表信息可以包括但不限于,各在线终端的名称、客户端类型信息、物理地址、IP地址、关联设备信息中的至少一种。
其中,物理地址主要是指媒体存取控制位址(Media Access Control Address,MAC)。
本发明提供的获取路由器在线终端列表的方法,通过在网络协议栈的网络层入口处,获取所有LAN侧的网络数据包相关的IP地址进行哈希操作,然后发送网络连接消息到用户态模块以告知终端上线,并记录终端的列表信息到哈希结点中,无需定时手动去轮询无线接口来查询所有连接的终端,而是根据网络数据包来实时、准确地进行在线终端列表的更新,从而实现对所有客户端信息的掌握,不会过多占用系统资源,响应速度更快。
图2是本发明提供的获取路由器在线终端列表的方法的流程示意图之二,如图2所示,步骤103所提供的计算所述IP地址对应的hash值,以查询hash table中是否存在与所述hash值对应的hash node后,基于查询结果更新所述hash table,包括:
在确定所述查询结果为hash table中存在与所述hash值对应的hash node后,则利用所述hash table更新第一目标hash node,并将所述第一目标hash node的结点状态由非激活状态转换为激活状态;所述第一目标hash node为所述hash值对应的hash node;
在确定所述查询结果为hash table中不存在与所述hash值对应的hash node后,则在所述hash table中新建第二目标hash node后,将所述列表信息加载至所述第二目标hash node,并设置所述第二目标hash node的结点状态为激活状态。
以图2所示为例,在路由器开机后,首先注册内核态模块(在本发明中可简称为ip_hash),并运行device_mng,以启动用户态模块的后台守护服务。用户态模块的后台守护服务采用发送网络连接消息(netlink)的方式注册内核消息,并发送INIT消息至内核态模块后,用户态模块进入休眠状态等待设备上线。
在任一终端上线后,内核态模块通过在网络层入口处获取到该在线终端的位于LAN侧的网络数据包。
进一步地,内核态模块通过获取网络数据包的IP地址,并采用hash算法计算出该IP地址对应的hash值。
然后,检查hash table中是否存在该hash值对应的hash node。
一方面,在内核态模块确定hash table中存在与该hash值相对应的hash node(为便于表述此处将其称作第一目标hash node),就可以利用新获取到的该在线终端的列表信息,对该第一目标hash node原本存储的列表信息进行更新,包括更新该在线终端的名称、客户端类型信息、MAC地址、IP地址、关联设备信息等。
进一步地,由内核态模块对第一目标hash node进行激活,即发送与该第一目标hash node相关的网络连接消息(netlink)至用户态模块,以告知第一目标hash node相关的在线设备上线。
另一方面,在内核态模块确定hash table中不存在与该hash值相对应的hashnode,则在hash table中重新创建一个新的hash node(为便于表述此处将其称作第二目标hash node),并将新获取到的该在线终端的列表信息加载至第二目标hash node中。
进一步地,内核态模块也会对第而目标hash node进行激活,即发送与该第而目标hash node相关的网络连接消息(netlink)至用户态模块,以告知第而目标hash node相关的在线设备上线。
本发明提供的获取路由器在线终端列表的方法,通过hash table查询的方式,判断任一新连接的在线终端是不是在路由器的提供服务过程的中,已经建立过与路由器的通信连接,对于已经建立过通信连接的在线终端,仅需对hash table中与之相关的hash node中所存储的该在线终端的列表信息进行更新;对于未建立过通信连接的在线终端,则在hash table为其重新创建新的hash node,生成新的hash table。
最终,将更新后的hash table输出并显示出来,例如先用显示器显示的方式展示出来。
基于上述实施例的内容,作为一种可选实施例,在基于查询结果更新所述hashtable之后,还包括:
发送netlink消息至路由器中的用户态模块,所述网络连接消息为所述在线终端上线的消息。
具体地,本发明在根据所接收到任一在线终端的网络数据包之后,根据该在线终端的列表信息,对hash table中该在线终端相关的hash node进行创建或更新之后,就可以通过,用户态进程模块所注册的netlink内核消息通道,将该在线终端的netlink消息发送给用户态进程模块,以供用户态进程模块建立与该在线终端之间的数据交互。
本发明提供的获取路由器在线终端列表的方法,没有定时去轮询路由器的无线接口以查询所有在线,而是根据内核网络数据包来发送相应的netlink ONLINE消息,有效地实现对所有客户端信息的掌握,不会过多占用系统资源,响应速度更快。
基于上述实施例的内容,作为一种可选实施例,周期性遍历所述哈希列表中的每个所述哈希结点,以确定在预设时长内是否接收到与各所述哈希结点所对应的各在线终端所发送的网络数据包;
若确定在所述预设时长内,未收到任一目标在线终端所发送的网络数据包,则删除与所述目标在线终端相关的哈希结点;所述任一目标在线终端是各在线终端中的任一个,所述目标在线终端相关的哈希结点的结点状态为激活状态。
图3是本发明提供的定时器的工作流程示意图,如图3所示,本发明通过在路由器中的内核态模块设置定时器,以定期的检查hash table中的各个hash node是否被更新。
具体地,在路由器开机重启之后,内核态模块在接收由用户态模块发送的INIT消息后,清空hash table以实现初始化,然后通过接收LAN侧的网络数据包,逐步创建在新的hash table。
在构建新的hash table的过程中,会在内核态模块中注册定时器,并通过运行定时器callback函数,隔预设时长(例如30s)周期性遍历并检测一次hash table中每一个非空hash node的状态,具体地:
先调取hash table中的第i个hash node,由i=1开始遍历。
先判断第i个hash node是否为空,即判断在30s时长内,内核态模块是否接收到与第i个hash node相对应的在线终端的网络数据包。若接收到相关的网络数据包,则继续查询第i+1个hash node是否为空;若内核态模块未接收到第i个hash node相对应的在线终端的网络数据包,则说明该在线终端已经离线,故从hash table中删除第i个hash node,并继续查询第i+1个hash node是否为空。
迭代执行上述步骤,直至遍历hash table中的每一个hash node(即直至i=MAX_node),其中MAX_node为hash table中的所有hash node的最大数量。
本发明提供的获取路由器在线终端列表的方法,通过周期性遍历hash table中的所有hash node,以检测各hash node对应的在线终端是否离线,并及时的将离线的在线终端的hash node从hash table中删除,在精简hash table的基础上,能够进一步提升在线终端列表的更新效率,包所获取的在线终端列表的准确性,同时也可以进一步优化系统资源的占用,使得系统的响应速度更快。
基于上述实施例的内容,作为一种可选实施例,在删除与所述目标在线终端相关的hash node之后,还包括:
发送网络断开消息(netlink ONLINE消息)至路由器中的用户态模块,所述netlink ONLINE消息为所述目标在线终端离线的消息。
结合图3所示,在内核态模块确定任一目标在线终端离线后,会从hash table中删除对应的hash node,同时由内核态模块向用户态模块发送该目标netlink ONLINE消息,以告知用户态模块,并与用户态模块及时更正通信策略。
基于上述实施例的内容,作为一种可选实施例,若确定在所述预设时长内,收到任一目标在线终端所发送的网络数据包,则将所述目标在线终端相关的hash node的结点状态由激活状态转换为非激活状态。
进一步地,在内核态模块确定在该预设时长内接收到了任一目标在线终端所发送的网络数据包,则可以说明该在线终端相关的hash node的结点状态是处于激活状态,故将所述目标在线终端相关的hash node的结点状态由激活状态转换为非激活状态,以便于在下一个周期内重新根据新采集的网络数据包,对该hash node所对应的列表信息进行更新。
图4是本发明提供的获取路由器在线终端列表的装置的结构示意图,如图4所示,该获取路由器在线终端列表的装置,主要是应用于路由器中的内核态模块,包括:
数据采集单元41,主要用于在内核网络协议栈的网络层入口处,接收LAN侧的网络数据包;
信息读取单元42,主要用于读取所述网络数据包,以获取发送所述网络数据包的在线终端的列表信息,所述列表信息包括所述在线终端的IP地址;
列表更新单元43,主要用于计算所述IP地址对应的哈希值,以查询哈希列表中是否存在与所述哈希值对应的哈希结点后,基于查询结果更新所述哈希列表。其中,所述哈希列表是连接至路由器的所有在线终端的列表。
需要说明的是,本发明实施例提供的获取路由器在线终端列表的装置,在具体运行时,可以执行上述任一实施例所述的获取路由器在线终端列表的方法,对此本实施例不作赘述。
本发明提供的获取路由器在线终端列表的装置,于网络协议栈的网络层入口处,获取所有LAN侧的网络数据包相关的IP地址进行哈希操作,然后发送网络连接消息到用户态模块以告知终端上线,并记录终端的列表信息到哈希结点中,无需定时手动去轮询无线接口来查询所有连接的终端,而是根据网络数据包来实时、准确地进行在线终端列表的更新,从而实现对所有客户端信息的掌握,不会过多占用系统资源,响应速度更快。
图5是本发明提供的电子设备的结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行获取路由器在线终端列表的方法,应用于路由器中的内核态模块,该方法包括:在内核网络协议栈的网络层入口处,接收LAN侧的网络数据包;读取所述网络数据包,以获取发送所述网络数据包的在线终端的列表信息,所述列表信息包括所述在线终端的IP地址;计算所述IP地址对应的哈希值,以查询哈希列表中是否存在与所述哈希值对应的哈希结点后,基于查询结果更新所述哈希列表;所述哈希列表是连接至路由器的所有在线终端的列表。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的获取路由器在线终端列表的方法,应用于路由器中的内核态模块,该方法包括:在内核网络协议栈的网络层入口处,接收LAN侧的网络数据包;读取所述网络数据包,以获取发送所述网络数据包的在线终端的列表信息,所述列表信息包括所述在线终端的IP地址;计算所述IP地址对应的哈希值,以查询哈希列表中是否存在与所述哈希值对应的哈希结点后,基于查询结果更新所述哈希列表;所述哈希列表是连接至路由器的所有在线终端的列表。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的获取路由器在线终端列表的方法,应用于路由器中的内核态模块,该方法包括:在内核网络协议栈的网络层入口处,接收LAN侧的网络数据包;读取所述网络数据包,以获取发送所述网络数据包的在线终端的列表信息,所述列表信息包括所述在线终端的IP地址;计算所述IP地址对应的哈希值,以查询哈希列表中是否存在与所述哈希值对应的哈希结点后,基于查询结果更新所述哈希列表;所述哈希列表是连接至路由器的所有在线终端的列表。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种获取路由器在线终端列表的方法,应用于路由器中的内核态模块,其特征在于,包括:
在内核网络协议栈的网络层入口处,接收LAN侧的网络数据包;
读取所述网络数据包,以获取发送所述网络数据包的在线终端的列表信息,所述列表信息包括所述在线终端的IP地址;
计算所述IP地址对应的哈希值,以查询哈希列表中是否存在与所述哈希值对应的哈希结点后,基于查询结果更新所述哈希列表;
所述哈希列表是连接至路由器的所有在线终端的列表。
2.根据权利要求1所述的获取路由器在线终端列表的方法,其特征在于,所述计算所述IP地址对应的哈希值,以查询哈希列表中是否存在与所述哈希值对应的哈希结点后,基于查询结果更新所述哈希列表,包括:
在确定所述查询结果为哈希列表中存在与所述哈希值对应的哈希结点后,则利用所述列表信息更新第一目标哈希结点,并将所述第一目标哈希结点的结点状态由非激活状态转换为激活状态;所述第一目标哈希结点为所述哈希值对应的哈希结点;
在确定所述查询结果为哈希列表中不存在与所述哈希值对应的哈希结点后,则在所述哈希列表中新建第二目标哈希结点后,将所述列表信息加载至所述第二目标哈希结点,并设置所述第二目标哈希结点的结点状态为激活状态。
3.根据权利要求1-2任一项所述的获取路由器在线终端列表的方法,其特征在于,所述列表信息包括所述在线终端的名称、客户端类型信息、物理地址、IP地址、关联设备信息中的至少一种。
4.根据权利要求3所述的获取路由器在线终端列表的方法,其特征在于,在基于查询结果更新所述哈希列表之后,还包括:
发送网络连接消息至路由器中的用户态模块,所述网络连接消息为所述在线终端上线的消息。
5.根据权利要求1所述的获取路由器在线终端列表的方法,其特征在于,周期性遍历所述哈希列表中的每个所述哈希结点,以确定在预设时长内是否接收到与各所述哈希结点所对应的各在线终端所发送的网络数据包;
若确定在所述预设时长内,未收到任一目标在线终端所发送的网络数据包,则删除与所述目标在线终端相关的哈希结点;所述任一目标在线终端是各在线终端中的任一个,所述目标在线终端相关的哈希结点的结点状态为激活状态。
6.根据权利要求5所述的获取路由器在线终端列表的方法,其特征在于,在删除与所述目标在线终端相关的哈希结点之后,还包括:
发送网络断开消息至路由器中的用户态模块,所述网络断开消息为所述目标在线终端离线的消息。
7.根据权利要求5所述的获取路由器在线终端列表的方法,其特征在于,若确定在所述预设时长内,收到任一目标在线终端所发送的网络数据包,则将所述目标在线终端相关的哈希结点的结点状态由激活状态转换为非激活状态。
8.一种获取路由器在线终端列表的装置,应用于路由器中的内核态模块,其特征在于,包括:
数据采集单元,用于在内核网络协议栈的网络层入口处,接收LAN侧的网络数据包;
信息读取单元,用于读取所述网络数据包,以获取发送所述网络数据包的在线终端的列表信息,所述列表信息包括所述在线终端的IP地址;
列表更新单元,用于计算所述IP地址对应的哈希值,以查询哈希列表中是否存在与所述哈希值对应的哈希结点后,基于查询结果更新所述哈希列表;
所述哈希列表是连接至路由器的所有在线终端的列表。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述获取路由器在线终端列表的方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述获取路由器在线终端列表的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210616991.0A CN115022226A (zh) | 2022-06-01 | 2022-06-01 | 获取路由器在线终端列表的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210616991.0A CN115022226A (zh) | 2022-06-01 | 2022-06-01 | 获取路由器在线终端列表的方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115022226A true CN115022226A (zh) | 2022-09-06 |
Family
ID=83072351
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210616991.0A Pending CN115022226A (zh) | 2022-06-01 | 2022-06-01 | 获取路由器在线终端列表的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115022226A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100045A (zh) * | 2014-05-22 | 2015-11-25 | 帕洛阿尔托研究中心公司 | 用于防止在命名数据网络路由器上插入恶意内容的方法和设备 |
CN105827477A (zh) * | 2016-03-09 | 2016-08-03 | 上海斐讯数据通信技术有限公司 | 一种基于网桥的用户设备管理方法及系统和网桥设备 |
CN105978748A (zh) * | 2016-04-26 | 2016-09-28 | 上海斐讯数据通信技术有限公司 | 一种基于哈希节点的终端设备信息统计的方法及装置 |
CN106357433A (zh) * | 2016-08-30 | 2017-01-25 | 上海寰创网络科技有限公司 | 一种实接口多wan口网关的实现方法 |
CN108123944A (zh) * | 2017-12-20 | 2018-06-05 | 上海斐讯数据通信技术有限公司 | 一种基于路由器自定义访客欢迎页的展示方法及系统 |
-
2022
- 2022-06-01 CN CN202210616991.0A patent/CN115022226A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100045A (zh) * | 2014-05-22 | 2015-11-25 | 帕洛阿尔托研究中心公司 | 用于防止在命名数据网络路由器上插入恶意内容的方法和设备 |
CN105827477A (zh) * | 2016-03-09 | 2016-08-03 | 上海斐讯数据通信技术有限公司 | 一种基于网桥的用户设备管理方法及系统和网桥设备 |
CN105978748A (zh) * | 2016-04-26 | 2016-09-28 | 上海斐讯数据通信技术有限公司 | 一种基于哈希节点的终端设备信息统计的方法及装置 |
CN106357433A (zh) * | 2016-08-30 | 2017-01-25 | 上海寰创网络科技有限公司 | 一种实接口多wan口网关的实现方法 |
CN108123944A (zh) * | 2017-12-20 | 2018-06-05 | 上海斐讯数据通信技术有限公司 | 一种基于路由器自定义访客欢迎页的展示方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8543692B2 (en) | Network system | |
CN110247784B (zh) | 确定网络拓扑结构的方法和装置 | |
CN110740490A (zh) | 终端入网方法、网关设备、系统、存储介质及装置 | |
JP2007148738A (ja) | 情報監視方法、システム及びプログラム | |
CN111212134A (zh) | 一种请求报文处理方法、装置、边缘计算系统和电子设备 | |
US20200133985A1 (en) | Method and device for recommending social user | |
CN111885216B (zh) | Dns查询方法、装置、设备和存储介质 | |
WO2016110078A1 (zh) | 数据获取方法及装置、存储介质 | |
CN115004673A (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
CN111625419A (zh) | 一种日志采集方法、系统、设备及计算机可读存储介质 | |
CN109561165A (zh) | 域名系统配置方法及相关装置 | |
CN113905050A (zh) | 一种互联网访问信息的探测方法、装置和系统 | |
US20160373268A1 (en) | Information processing system, information processing method, and storage medium | |
CN114500633A (zh) | 数据转发方法、相关装置、程序产品及数据传输系统 | |
CN111901386B (zh) | 一种远端文件处理的方法、系统、设备及可读存储介质 | |
CN113098776B (zh) | 一种网络拓扑的确定方法、装置、设备及存储介质 | |
CN115022226A (zh) | 获取路由器在线终端列表的方法、装置、设备及存储介质 | |
CN112511440B (zh) | 报文转发方法、系统、存储介质和电子设备 | |
CN113746909A (zh) | 网络连接方法、装置、电子设备和计算机可读存储介质 | |
CN112491591A (zh) | 一种通用即插即用UPnP端口映射方法及系统 | |
CN111193805A (zh) | 一种资源发现的方法及装置 | |
CN110753043A (zh) | 一种通信方法、装置、服务器及介质 | |
CN110213399B (zh) | 基于netfilter机制的dhcp服务器探测方法、存储介质及终端 | |
CN109451047A (zh) | 监控告警系统的数据传送方法、装置、设备及存储介质 | |
CN114745415B (zh) | 一种车辆业务通信数据处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |