一种获取终端信息的方法、装置、拓展设备及存储介质与流程

专利查询2023-8-19  104



1.本发明涉及计算机网络技术领域,尤其涉及一种获取终端信息的方法、装置、拓展设备及存储介质。


背景技术:

2.无线信号是通过电磁波在空中传输的,路由器和终端(如手机、笔记本等)之间的障碍物会对信号传输造成很大衰减,降低无线传输速率,比如承重墙、隔墙、挡板、家具等,穿过的障碍物越多信号越弱。经过测试,单台路由器可以较好的覆盖普通三室两厅及更小的户型,大户型(复式、别墅等)需要根据实际需要搭配其他设备进行扩展。实际上是没有所谓的“穿墙王”的,在一些特殊环境下,单台路由器无论尝试任何办法,都不可避免的无法完全覆盖整个区域。
3.为了扫除无线盲点,改善用户上网体验,现在推出了一种扩展设备解决此问题。扩展设备是一个信号放大器,它的作用是放在主路由器信号较弱的地方,通过桥接或中继将信号增强放大,使得信号可以覆盖到各个角落。可直接通过网线连接建立通信,也可基于wds(wireless distribution system,无线分布系统)无线虚拟出一条链路供数据传输。通过扩展方式连接,可形成一个分布式的、全屋的无线覆盖网络,保证无线网络传输的高速与稳定,满足家庭网络高带宽低延时的组网需求。但是这种方式需要获取下行终端列表,目前并未有简单有效的方式来进行获取。
4.由此,目前需要有一种方案来解决现有技术中的问题。


技术实现要素:

5.有鉴于此,本发明提出了一种获取终端信息的方法、装置、拓展设备及存储介质,用以克服现有技术中的问题。
6.本发明提出了以下具体的实施例:
7.本发明实施例提出了一种获取终端信息的方法,包括:
8.若接收到ipc消息,确定ipc消息中的状态位;若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表并保存在共享内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在共享内存中;
9.若接收到netlink消息,获取所述netlink消息中的mac地址以及端口id;若所述端口id存在于iface_lists缓存中,则将所述mac地址保存在共享内存中;所述netlink消息是内核bridge模块在确定fdb表中的信息发生变化时生成;
10.周期性轮询所述共享内存中的各mac地址;基于所述mac地址确定ip地址;向各所述ip地址发送arp报文;若在预设时间内收到反馈报文,则将所述mac地址对应的终端的信息保存到共享内存中。
11.在一个具体的实施例中,所述ipc消息是cgi模块在确定网络模式切换过程中读取上行网关的接口名称成功时,将状态位设置为第一字符,并基于上行网关的接口名称、状态
位、下行接口名称和网络模式生成的;或在cgi模块在确定网络模式切换过程中读取上行网关的接口名称失败时,将状态位设置为第二字符,基于当前网络工作模式与状态位生成的;
12.该方法还包括:若在预设时间内未收到反馈报文,则将所述mac地址从所述共享内存中删除。
13.在一个具体的实施例中,终端的信息包括:ipv4地址、ipv6地址、连接类型和hostname。
14.在一个具体的实施例中,若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表保存在共享内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在共享内存中,包括:
15.若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表保存在全局内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在全局内存中;
16.基于所述全局内存中的数据对所述共享内存进行更新。
17.在一个具体的实施例中,所述查询网桥接口名称与端口id,包括:
18.通过brctl show命令查询网桥接口名称与端口id。
19.本发明实施例还提出了一种获取终端信息的装置,包括:
20.第一处理模块,用于若接收到ipc消息,确定ipc消息中的状态位;若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表并保存在共享内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在共享内存中;
21.第二处理模块,用于若接收到netlink消息,获取所述netlink消息中的mac地址以及端口id;若所述端口id存在于iface_lists缓存中,则将所述mac地址保存在共享内存中;所述netlink消息是内核bridge模块在确定fdb表中的信息发生变化时生成;
22.定时处理模块,用于周期性轮询所述共享内存中的各mac地址;基于所述mac地址确定ip地址;向各所述ip地址发送arp报文;若在预设时间内收到反馈报文,则将所述mac地址对应的终端的信息保存到共享内存中。
23.在一个具体的实施例中,所述ipc消息是cgi模块在确定网络模式切换过程中读取上行网关的接口名称成功时,将状态位设置为第一字符,并基于上行网关的接口名称、状态位、下行接口名称和网络模式生成的;或在cgi模块在确定网络模式切换过程中读取上行网关的接口名称失败时,将状态位设置为第二字符,基于当前网络工作模式与状态位生成的;
24.所述定时处理模块还用于:若在预设时间内未收到反馈报文,则将所述mac地址从所述共享内存中删除。
25.在一个具体的实施例中,终端的信息包括:ipv4地址、ipv6地址、连接类型和hostname。
26.本发明实施例还提出了一种拓展设备,包括:存储器与处理器,所述存储器中存储有应用程序,所述处理器在执行所述应用程序时实现上述的获取终端信息的方法。
27.本发明实施例还提出了一种存储介质,所述存储介质中存储有应用程序,所述应用程序被执行时实现上述的获取终端信息的方法。
28.以此,本发明实施例提出了一种获取终端信息的方法、装置、拓展设备及存储介质,该方法包括:若接收到ipc消息,确定ipc消息中的状态位;若所述状态位为第一字符,则
获取所述ipc消息中的网桥下行接口列表并保存在共享内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在共享内存中;若接收到netlink消息,获取所述netlink消息中的mac地址以及端口id;若所述端口id存在于iface_lists缓存中,则将所述mac地址保存在共享内存中;所述netlink消息是内核bridge模块在确定fdb表中的信息发生变化时生成;周期性轮询所述共享内存中的各mac地址;基于所述mac地址确定ip地址;向各所述ip地址发送arp报文;若在预设时间内收到反馈报文,则将所述mac地址对应的终端的信息保存到共享内存中。以此获取到了终端的信息。
附图说明
29.为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
30.图1示出了本发明实施例提出的一种获取终端信息的方法的流程示意图;
31.图2示出了本发明实施例提出的一种获取终端信息的方法的一部分流程示意图;
32.图3示出了本发明实施例提出的一种获取终端信息的方法的另一部分的流程示意图;
33.图4示出了本发明实施例提出的一种获取终端信息的方法的第三部分的示意图;
34.图5示出了本发明实施例提出的一种获取终端信息的装置的结构示意图。
35.图例说明:
36.201-第一处理模块;202-第二处理模块;203-定时处理模块。
具体实施方式
37.下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
38.通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
40.此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
41.除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中
被清楚地限定。
42.实施例1
43.本发明实施例1公开了一种获取终端信息的方法,如图1所示,包括以下步骤:
44.步骤s101、若接收到ipc消息,确定ipc消息中的状态位;若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表并保存在共享内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在共享内存中;
45.进一步的,步骤s101的若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表并保存在共享内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在共享内存中,包括:若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表保存在全局内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在全局内存中;基于所述全局内存中的数据对所述共享内存进行更新。
46.此外,所述查询网桥接口名称与端口id,包括:通过brctl show命令查询网桥接口名称与端口id。
47.所述ipc消息是cgi模块在确定网络模式切换过程中读取上行网关的接口名称成功时,将状态位设置为第一字符,并基于上行网关的接口名称、状态位、下行接口名称和网络模式生成的;或在cgi模块在确定网络模式切换过程中读取上行网关的接口名称失败时,将状态位设置为第二字符,基于当前网络工作模式与状态位生成的;
48.如图2所示,cgi模块用于处理用户在页面的查询、设置等请求,本方案中,在用户切换模式时,cgi模块以ipc进程消息通信机制将工作模式及网桥关联接口列表传递至clientmonitor程序,使之可以根据不同使用场景执行对应逻辑处理;
49.具体的,在发生模式切换时,首先读取连接上行网关的接口名称,如果此处读取成功,则置状态位为1,将下行接口名称、工作模式及状态位以ipc通信机制发送至clientmonitor程序,clientmonitor执行对应逻辑处理;如此时未在网关处接入网线或者网关连接失败,cgi不能成功读取接口名称,则置状态位为0,则仅发送当前工作模式及状态位至clientmonitor程序,具体接口名称由clientmonitor另行获取。
50.clientmonitor存在多个线程,例如监听内核netlink消息线程,处理cgi模块的网桥关联接口列表线程,客户端列表定时更新线程。由此,clientmonitor接收cgi的ipc消息后,确定ipc消息中的状态位,如状态位为1,则直接将网桥下行接口列表保存至一全局内存iface_lists中,待其他线程调用;如状态位为0,则此线程自行查询网桥接口名称并记录端口id,通过调用brctl show可查到所有网桥接口名称,然后在保存全局内存时删除上行接口;后续,基于全局内存对共享内存进行更新。
51.具体的,网桥接口如表1所示:
52.表1
53.work mode上行接口下行接口桥接eth0.1eth2,eth3,eth4,wl0,wl1

中继wl0eth1,eth2,eth3,eth4,wl1

54.具体的,网桥接口,由网桥bridge所绑定的真实物理接口组成,需要自行区分出哪些是上行接口,哪些是下行接口。上行接口表示此扩展设备用来连接上行网关的接口,此接口可以是有线网口或无线网卡接口,此接口名称在不同方案商平台定义不一致,如bcm平台
则定义为eth0或wl0,下行接口与之相反,表示此扩展设备用来连接用户真实终端的接口,同样可以设置为有线或无线接口。
55.步骤s102、若接收到netlink消息,获取所述netlink消息中的mac地址以及端口id;若所述端口id存在于iface_lists缓存中,则将所述mac地址保存在所述共享内存中;所述netlink消息是内核bridge模块在确定fdb表中的信息发生变化时生成;
56.具体的,如图3所示,内核bridge模块创建netlink套接字,将fdb表条目的变化以事件消息传递给clientmonitor应用程序;具体的,在初始化阶段创建netlink套接字,当fdb表发生变化且mac地址非本机设备地址的条目,将mac、端口id以及事件id通知应用层clientmonitor程序,事件id包括增加条目、删除条目等。条目的增加表示终端的上线,因为fdb表的老化机制,所以减少并不表示终端离线,需要通过其他机制去判断终端的离线;
57.此外,具体的fdb(forwarding database)表也即mac地址表,又称fdb表,由mac地址、vlan号、网络端口号等信息组成,见表1,用来决定网络数据从哪个端口出去可以到达指定终端;
58.表1
59.portmac addris localageing timer300:bb:e3:56:dd:b2no0.18262:98:e8:79:11:1fno0.0046a:63:4c:5f:05:64yes2.58
60.步骤s103、周期性轮询所述共享内存中的各mac地址;基于所述mac地址确定ip地址;向各所述ip地址发送arp报文;若在预设时间内收到反馈报文,则将所述mac地址对应的终端的信息保存到共享内存中。
61.具体的,基于所述mac地址确定ip地址是基于arp表来确定与所述mac地址对应的ip地址。
62.进一步的,若在预设时间内未收到反馈报文,则将所述mac地址从所述共享内存中删除。终端的信息包括:ipv4地址、ipv6地址、连接类型和hostname。
63.具体的,进一步的,如图4所示,clientmonitor主动轮询去读取client_lists中mac条目,首先发送arp报文,判断此mac的终端是否在线,如有arp response则根据mac去查询ipv4地址、ipv6地址、连接类型、hostname等信息,填充client_lists对应终端的数据,如没有response回应,则将此条目置标志位,若发现多次查询都没有回应,则判断此终端已下线,删除client_lists中对应条目。
64.以此,最终维护的client_lists则是记录的真实终端列表。
65.实施例2
66.本发明实施例2还公开了一种获取终端信息的装置,如图所示,包括:
67.第一处理模块201,用于若接收到ipc消息,确定ipc消息中的状态位;若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表并保存在共享内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在共享内存中;
68.第二处理模块202,用于若接收到netlink消息,获取所述netlink消息中的mac地址以及端口id;若所述端口id存在于iface_lists缓存中,则将所述mac地址保存在共享内存中;所述netlink消息是内核bridge模块在确定fdb表中的信息发生变化时生成;
69.定时处理模块203,用于周期性轮询所述共享内存中的各mac地址;基于所述mac地址确定ip地址;向各所述ip地址发送arp报文;若在预设时间内收到反馈报文,则将所述mac地址对应的终端的信息保存到共享内存中。
70.在一个具体的实施例中,所述ipc消息是cgi模块在确定网络模式切换过程中读取上行网关的接口名称成功时,将状态位设置为第一字符,并基于上行网关的接口名称、状态位、下行接口名称和网络模式生成的;或在cgi模块在确定网络模式切换过程中读取上行网关的接口名称失败时,将状态位设置为第二字符,基于当前网络工作模式与状态位生成的;
71.所述定时处理模块203还用于:若在预设时间内未收到反馈报文,则将所述mac地址从所述共享内存中删除。
72.在一个具体的实施例中,终端的信息包括:ipv4地址、ipv6地址、连接类型和hostname。
73.在一个具体的实施例中,终端的信息包括:ipv4地址、ipv6地址、连接类型和hostname。
74.在一个具体的实施例中,第一处理模块201用于若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表并保存在共享内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在共享内存中,包括:
75.若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表并保存在全局内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在全局内存中;
76.基于所述全局内存中的数据对所述共享内存进行更新。
77.在一个具体的实施例中,所述第一处理模块201查询网桥接口名称与端口id,包括:
78.通过brctl show命令查询网桥接口名称与端口id。
79.实施例3
80.本发明实施例3还公开了一种拓展设备,包括:存储器与处理器,所述存储器中存储有应用程序,所述处理器在执行所述应用程序时实现实施例1中所述的获取终端信息的方法。
81.实施例4
82.本发明实施例4还公开了一种存储介质,所述存储介质中存储有应用程序,所述应用程序被执行时实现实施例1中所述的获取终端信息的方法。
83.以此,本发明实施例提出了一种获取终端信息的方法、装置、拓展设备及存储介质,该方法包括:若接收到ipc消息,确定ipc消息中的状态位;若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表并保存在共享内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在共享内存中;若接收到netlink消息,获取所述netlink消息中的mac地址以及端口id;若所述端口id存在于iface_lists缓存中,则将所述mac地址保存在共享内存中;所述netlink消息是内核bridge模块在确定fdb表中的信息发生变化时生成;周期性轮询所述共享内存中的各mac地址;基于所述mac地址确定ip地址;向各所述ip地址发送arp报文;若在预设时间内收到反馈报文,则将所述mac地址对应的终端的信息保存到共享内存中。以此获取到了终端的信息。
84.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
85.另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
86.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
87.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

技术特征:
1.一种获取终端信息的方法,其特征在于,包括:若接收到ipc消息,确定ipc消息中的状态位;若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表并保存在共享内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在共享内存中;若接收到netlink消息,获取所述netlink消息中的mac地址以及端口id;若所述端口id存在于iface_lists缓存中,则将所述mac地址保存在所述共享内存中;周期性轮询所述共享内存中的各mac地址;基于所述mac地址确定ip地址;向各所述ip地址发送arp报文;若在预设时间内收到反馈报文,则将所述mac地址对应的终端的信息保存到共享内存中。2.如权利要求1所述的方法,其特征在于,所述ipc消息是cgi模块在确定网络模式切换过程中读取上行网关的接口名称成功时,将状态位设置为第一字符,并基于上行网关的接口名称、状态位、下行接口名称和网络模式生成的;或在cgi模块在确定网络模式切换过程中读取上行网关的接口名称失败时,将状态位设置为第二字符,基于当前网络工作模式与状态位生成的;该方法还包括:若在预设时间内未收到反馈报文,则将所述mac地址从所述共享内存中删除。3.如权利要求1所述的方法,其特征在于,终端的信息包括:ipv4地址、ipv6地址、连接类型和hostname。4.如权利要求1所述的方法,其特征在于,若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表并保存在共享内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在共享内存中,包括:若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表并保存在全局内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在全局内存中;基于所述全局内存中的数据对所述共享内存进行更新。5.如权利要求1所述的方法,其特征在于,所述查询网桥接口名称与端口id,包括:通过brctl show命令查询网桥接口名称与端口id。6.一种获取终端信息的装置,其特征在于,包括:第一处理模块,用于若接收到ipc消息,确定ipc消息中的状态位;若所述状态位为第一字符,则获取所述ipc消息中的网桥下行接口列表并保存在共享内存中;若所述状态位为第二字符,则查询网桥接口名称与端口id,并保存在共享内存中;第二处理模块,用于若接收到netlink消息,获取所述netlink消息中的mac地址以及端口id;若所述端口id存在于iface_lists缓存中,则将所述mac地址保存在所述共享内存中;所述netlink消息是内核bridge模块在确定fdb表中的信息发生变化时生成;定时处理模块,用于周期性轮询所述共享内存中的各mac地址;基于所述mac地址确定ip地址;向各所述ip地址发送arp报文;若在预设时间内收到反馈报文,则将所述mac地址对应的终端的信息保存到共享内存中。7.如权利要求6所述的装置,其特征在于,所述ipc消息是cgi模块在确定网络模式切换过程中读取上行网关的接口名称成功时,将状态位设置为第一字符,并基于上行网关的接口名称、状态位、下行接口名称和网络模式生成的;或在cgi模块在确定网络模式切换过程
中读取上行网关的接口名称失败时,将状态位设置为第二字符,基于当前网络工作模式与状态位生成的;所述定时处理模块还用于:若在预设时间内未收到反馈报文,则将所述mac地址从所述共享内存中删除。8.如权利要求6所述的装置,其特征在于,终端的信息包括:ipv4地址、ipv6地址、连接类型和hostname。9.一种拓展设备,其特征在于,包括:存储器与处理器,所述存储器中存储有应用程序,所述处理器在执行所述应用程序时实现权利要求1-5任一项所述的获取终端信息的方法。10.一种存储介质,其特征在于,所述存储介质中存储有应用程序,所述应用程序被执行时实现权利要求1-5任一项所述的获取终端信息的方法。

技术总结
本发明实施例公开了一种获取终端信息的方法、装置、拓展设备及存储介质,包括:获取IPC消息中的网桥下行接口列表保存在共享内存中;若接收到netlink消息,获取netlink消息中的MAC地址以及端口ID;若端口ID存在于iface_lists缓存中,则将MAC地址保存在共享内存中;周期性轮询共享内存中的各MAC地址;基于MAC地址确定IP地址;向各IP地址发送ARP报文;若在预设时间内收到反馈报文,则将MAC地址对应的终端的信息保存到共享内存中。以此获取到了终端的信息。的信息。的信息。


技术研发人员:郑志林 董浩
受保护的技术使用者:深圳市共进电子股份有限公司
技术研发日:2021.11.30
技术公布日:2022/3/8

最新回复(0)