本发明涉及计算机网络技术领域,更具体地,涉及一种跨网段发现设备的方法及装置。
背景技术:
随着网络的发展,各个行业的设备都接入到网络,能够方便的发现和操作这些设备,就显得尤为重要。在管理这些设备的时候,需要通过操作软件对这些设备进行操作设置、查看状态等。
当安装操作软件的计算机接入到网络中,操作软件不知道网络上有多少设备,因此需要方便的发现设备。目前管理程序启动时,直接去侦听现有网络获得设备的ip地址。当计算机切换网络的时候,计算机的ip地址,特别是网段,很大可能发生改变。作为服务端的计算机会通过不同的wifi无线网接入到不同的网络时,由于发生网络切换,管理程序不会去检测网络的变化,需要手动重启管理程序,才能发现设备,步骤比较复杂,给操作带来诸多不便。
技术实现要素:
本发明实施例提供一种跨网段发现设备的方法及装置,用以解决或者至少部分地解决现有技术存在的步骤复杂、不便的缺陷。
第一方面,本发明实施例提供一种跨网段发现设备的方法,包括:
若判断获知ip地址发生变化,则根据变化后的ip地址,生成udp数据包;
广播所述udp数据包,以根据所述udp数据包与客户端建立新的连接;
根据所述新的连接,发现所述客户端。
优选地,所述广播所述udp数据包之前,还包括:
若判断获知ip地址未发生变化,则根据所述ip地址,生成udp数据包。
优选地,所述若判断获知ip地址发生变化,则根据变化后的ip地址,生成udp数据包之前,还包括:
根据预设的时间间隔,获取ip地址。
第二方面,本发明实施例提供一种跨网段发现设备的方法,包括:
接收服务端发送的udp数据包;
获取所述服务端发送的udp数据包携带的所述服务端的ip地址;
若判断获知所述服务端的ip地址发生变化,则断开当前连接,根据所述服务端变化后的ip地址,与所述服务端建立新的连接,以被所述服务端发现。
优选地,获取所述udp数据包携带的所述服务端的ip地址之后,还包括:
若判断获知所述服务端的ip地址未发生变化,则保持所述当前连接。
优选地,所述接收服务端发送的udp数据包的具体步骤包括:
根据预设的时间间隔,接收udp数据包,确定所述udp数据包为所述服务端发送的udp数据包。
第三方面,本发明实施例提供一种跨网段发现设备的装置,包括:
组包模块,用于若判断获知ip地址发生变化,则根据变化后的ip地址,生成udp数据包;
广播模块,用于广播所述udp数据包,以根据所述udp数据包与客户端建立新的连接;
发现模块,用于根据所述新的连接,发现所述客户端。
第四方面,本发明实施例提供一种跨网段发现设备的装置,包括:
接收模块,用于接收服务端发送的udp数据包;
解析模块,用于获取所述服务端发送的udp数据包携带的所述服务端的ip地址;
连接模块,用于若判断获知所述服务端的ip地址发生变化,则断开当前连接,根据所述服务端变化后的ip地址,与所述服务端建立新的连接,以被所述服务端发现。
第五方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,执行所述程序时实现如第一方面或第二方面的各种可能的实现方式中任一种可能的实现方式所提供的跨网段发现设备的方法的步骤。
第六方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第二方面的各种可能的实现方式中任一种可能的实现方式所提供的跨网段发现设备的方法的步骤。
本发明实施例提供的跨网段发现设备的方法及装置,通过在判断获知ip地址发生变化之后,根据变化后的ip地址,生成udp数据包并广播,以根据udp数据包与客户端建立新的连接,发现客户端,能实现在网段变化时自动发现设备,不需要重启服务端,也不需要重启服务端的相关程序,步骤更简单、方便。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例提供的跨网段发现设备的方法的流程示意图;
图2为根据本发明实施例提供的跨网段发现设备的方法的流程示意图;
图3为根据本发明实施例提供的跨网段发现设备的装置的结构示意图;
图4为根据本发明实施例提供的跨网段发现设备的装置的结构示意图;
图5为根据本发明实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了克服现有技术的上述问题,本发明实施例提供一种跨网段发现设备的方法及装置,其发明构思是,通过判断服务端的ip地址是否发生变化,在ip地址发生变化之后,根据变化后的ip地址,生成udp数据包并广播,重新与客户端建立连接,从而能在网段发生变化之后,发现设备,实现跨网段的设备发现。
图1为根据本发明实施例提供的跨网段发现设备的方法的流程示意图。如图1所示,该方法包括:步骤s101、若判断获知ip地址发生变化,则根据变化后的ip地址,生成udp数据包。
需要说明的是,本发明实施例提供的跨网段发现设备的方法的执行主体为服务端。
待发现的设备,为客户端。
具体地,通过判断服务端的ip地址是否发生变化,来判断网络状况是否发生改变。
将本次获取的服务端的当前ip地址与上一次获取的服务端的ip地址进行比较,若二者不同,说明服务端的ip地址发生了变化。
若服务端的ip地址发生了变化,则生成携带了本次获取的服务端的当前ip地址(即变化后的ip地址)的udp数据包。
需要说明的是,生成的udp数据包除了可以携带变化后的服务端的ip地址之外,还可以携带服务端的端口信息,以使得网络中的设备通过该端口与服务端进行连接。
步骤s102、广播udp数据包,以根据udp数据包与客户端建立新的连接。
具体地,生成携带变化后的服务端的ip地址的udp数据包之后,将该udp数据包进行全网广播。
任一客户端接收到服务端广播的udp数据包之后,可以根据该udp数据包携带的服务端的当前ip地址,与服务端建立新的连接。
步骤s103、根据新的连接,发现客户端。
具体地,任一客户端与服务端建立新的连接之后,服务端可以获知与哪一个客户端建立了连接,从而可以发现该客户端。
本发明实施例通过在判断获知ip地址发生变化之后,根据变化后的ip地址,生成udp数据包并广播,以根据udp数据包与客户端建立新的连接,发现客户端,能实现在网段变化时自动发现设备,不需要重启服务端,也不需要重启服务端的相关程序,步骤更简单、方便。
基于上述各实施例的内容,广播udp数据包之前,还包括:若判断获知ip地址未发生变化,则根据ip地址,生成udp数据包。
具体地,通过判断服务端的ip地址是否发生变化,来判断网络状况是否发生改变。
将本次获取的服务端的当前ip地址与上一次获取的服务端的ip地址进行比较,若二者相同,说明服务端的ip地址未发生变化。
若服务端的ip地址未发生变化,则生成携带了本次获取的服务端的当前ip地址的udp数据包。
需要说明的是,生成的udp数据包除了可以携带为发生变化的服务端的ip地址之外,还可以携带服务端的端口,以使得网络中的设备通过该端口与服务端保持连接。
本发明实施例通过判断获知ip地址未发生变化之后,根据未变化的ip地址,生成udp数据包并广播,以根据udp数据包与客户端保持连接,发现客户端,能实现自动发现设备,不需要重启服务端,也不需要重启服务端的相关程序,步骤更简单、方便。
基于上述各实施例的内容,若判断获知ip地址发生变化,则根据变化后的ip地址,生成udp数据包之前,还包括:根据预设的时间间隔,获取ip地址。
具体地,服务端可以按照预设的时间间隔,通过网卡,获取自身的ip地址,以判断ip地址是否发生变化。
预设的时间间隔,可以根据实际情况设定,例如每隔5秒获取服务端的ip地址。本发明实施例对预设的时间间隔的具体时长不作限制。
本发明实施例根据预设的时间间隔,获取ip地址,能及时判断服务端的ip地址是否发生变化,及时发现网段变化,重新与客户端建立连接,从而能实现在网段变化时自动发现设备,不需要重启服务端,也不需要服务端的重启相关程序,步骤更简单、方便。
图2为根据本发明实施例提供的跨网段发现设备的方法的流程示意图。如图2所示,该方法包括:步骤s201、接收服务端发送的udp数据包。
需要说明的是,本发明实施例提供的跨网段发现设备的方法的执行主体为客户端。
具体地,客户端接收服务端以广播的方式发送的udp数据包。
步骤s202、获取服务端发送的udp数据包携带的服务端的ip地址。
具体地,对服务端发送的udp数据包进行解析,可以获取该udp数据包携带的服务端的ip地址。
需要说明的是,udp数据包除了可以携带服务端的ip地址之外,还可以携带服务端的端口信息。对服务端发送的udp数据包进行解析,除了可以获取该udp数据包携带的服务端的ip地址之外,还可以获取服务端的端口信息。
步骤s203、若判断获知服务端的ip地址发生变化,则断开当前连接,根据服务端变化后的ip地址,与服务端建立新的连接,以被服务端发现。
具体地,将本次解析获得的服务端的当前ip地址,与上一次解析获得的服务端的ip地址进行比较,若二者不同,说明服务端的ip地址发生了变化。
若服务端的ip地址发生了变化,则断开旧的连接(即当前连接),向该变化后的ip地址发送连接请求,与服务端建立新的连接。
客户端与服务端建立新的连接之后,服务端可以获知与哪一个客户端建立了连接,从而可以发现该客户端。
本发明实施例通过在判断获知ip地址发生变化之后,断开旧的连接,根据变化后的ip地址与服务端建立新的连接,从而被服务端发现,能实现在网段变化时自动发现设备,不需要重启服务端,也不需要重启服务端的相关程序,步骤更简单、方便。
基于上述各实施例的内容,获取udp数据包携带的服务端的ip地址之后,还包括:若判断获知服务端的ip地址未发生变化,则保持当前连接。
具体地,将本次解析获得的服务端的当前ip地址,与上一次解析获得的服务端的ip地址进行比较,若二者相同,说明服务端的ip地址未发生变化。
若服务端的ip地址未发生变化,说明客户端之前已被服务端发现,则继续保持与服务端的该旧的连接。
本发明实施例通过在判断获知ip地址未发生变化之后,保持与服务端的连接,维持被发现的状态,能实现自动发现设备,不需要重启服务端,也不需要重启服务端的相关程序,步骤更简单、方便。
基于上述各实施例的内容,接收服务端发送的udp数据包的具体步骤包括:根据预设的时间间隔,接收udp数据包,确定udp数据包为服务端发送的udp数据包。
具体地,客户端根据预设的时间间隔,接收udp数据包。
预设的时间间隔,可以根据实际情况设定,例如每隔5秒获取服务端的ip地址。本发明实施例对预设的时间间隔的具体时长不作限制。
优选地,客户端接收udp数据包的时间间隔,与服务端获取ip地址的时间间隔相同。
需要说明的是,网络中不仅服务端会发送udp数据包,其他设备也可能发送udp数据包。因此,获得udp数据包之后,判断该udp数据包是否为服务端广播的udp数据包。
可以根据udp数据包携带的mac地址等信息,判断该udp数据包是否为服务端广播的udp数据包。
若该udp数据包是服务端广播的udp数据包,则执行步骤s201。
本发明实施例根据预设的时间间隔获取udp数据包,判断是否为服务端发送的udp数据包,能及时判断服务端的ip地址是否发生变化,及时发现网段变化,重新与服务端建立连接,从而能实现在网段变化时自动发现设备,不需要重启服务端,也不需要服务端的重启相关程序,步骤更简单、方便。
图3为根据本发明实施例提供的跨网段发现设备的装置的结构示意图。基于上述各实施例的内容,如图3所示,该装置包括组包模块301、广播模块302和发现模块303,其中:
组包模块301,用于若判断获知ip地址发生变化,则根据变化后的ip地址,生成udp数据包;
广播模块302,用于广播udp数据包,以根据udp数据包与客户端建立新的连接;
发现模块303,用于根据新的连接,发现客户端。
需要说明的是,本发明实施例提供的跨网段发现设备的装置为服务端。
具体地,组包模块301与广播模块302电连接,广播模块302与发现模块303电连接。
组包模块301将本次获取的服务端的当前ip地址与上一次获取的服务端的ip地址进行比较,若二者不同,说明服务端的ip地址发生了变化。
若服务端的ip地址发生了变化,则组包模块301生成携带了本次获取的服务端的当前ip地址(即变化后的ip地址)的udp数据包。
广播模块302将生成的携带变化后的服务端的ip地址的udp数据包进行全网广播。
任一客户端接收到服务端广播的udp数据包之后,可以根据该udp数据包携带的服务端的当前ip地址,与服务端建立新的连接。
任一客户端与服务端建立新的连接之后,发现模块303可以获知服务端与哪一个客户端建立了连接,从而可以发现该客户端。
本发明实施例提供的跨网段发现设备的装置,用于执行本发明上述各实施例提供的跨网段发现设备的方法,该跨网段发现设备的装置包括的各模块实现相应功能的具体方法和流程详见上述跨网段发现设备的方法的实施例,此处不再赘述。
该跨网段发现设备的装置用于前述各实施例的跨网段发现设备的方法。因此,在前述各实施例中的跨网段发现设备的方法中的描述和定义,可以用于本发明实施例中各执行模块的理解。
本发明实施例通过在判断获知ip地址发生变化之后,根据变化后的ip地址,生成udp数据包并广播,以根据udp数据包与客户端建立新的连接,发现客户端,能实现在网段变化时自动发现设备,不需要重启服务端,也不需要重启服务端的相关程序,步骤更简单、方便。
图4为根据本发明实施例提供的跨网段发现设备的装置的结构示意图。基于上述各实施例的内容,如图4所示,该装置包括接收模块401、解析模块402和连接模块403,其中:
接收模块401,用于接收服务端发送的udp数据包;
解析模块402,用于获取服务端发送的udp数据包携带的服务端的ip地址;
连接模块403,用于若判断获知服务端的ip地址发生变化,则断开当前连接,根据服务端变化后的ip地址,与服务端建立新的连接,以被服务端发现。
需要说明的是,本发明实施例提供的跨网段发现设备的装置为客户端。
具体地,接收模块401与解析模块402电连接,解析模块402与连接模块403电连接。
接收模块401接收服务端以广播的方式发送的udp数据包。
解析模块402对服务端发送的udp数据包进行解析,可以获取该udp数据包携带的服务端的ip地址。
连接模块403将本次解析获得的服务端的当前ip地址,与上一次解析获得的服务端的ip地址进行比较,若二者不同,说明服务端的ip地址发生了变化。
若服务端的ip地址发生了变化,则连接模块403断开旧的连接(即当前连接),向该变化后的ip地址发送连接请求,与服务端建立新的连接。
客户端与服务端建立新的连接之后,服务端可以获知与哪一个客户端建立了连接,从而可以发现该客户端。
本发明实施例提供的跨网段发现设备的装置,用于执行本发明上述各实施例提供的跨网段发现设备的方法,该跨网段发现设备的装置包括的各模块实现相应功能的具体方法和流程详见上述跨网段发现设备的方法的实施例,此处不再赘述。
该跨网段发现设备的装置用于前述各实施例的跨网段发现设备的方法。因此,在前述各实施例中的跨网段发现设备的方法中的描述和定义,可以用于本发明实施例中各执行模块的理解。
本发明实施例通过在判断获知ip地址发生变化之后,断开旧的连接,根据变化后的ip地址与服务端建立新的连接,从而被服务端发现,能实现在网段变化时自动发现设备,不需要重启服务端,也不需要重启服务端的相关程序,步骤更简单、方便。
图5为根据本发明实施例提供的电子设备的实体结构示意图。基于上述实施例的内容,如图5所示,该电子设备可以包括:处理器(processor)501、存储器(memory)502和总线503;其中,处理器501和存储器502通过总线503完成相互间的通信;处理器501用于调用存储在存储器502中并可在处理器501上运行的计算机程序指令,以执行上述各方法实施例所提供的跨网段发现设备的方法,例如包括:若判断获知ip地址发生变化,则根据变化后的ip地址,生成udp数据包;广播udp数据包,以根据udp数据包与客户端建立新的连接;根据新的连接,发现客户端;又例如包括:接收服务端发送的udp数据包;获取服务端发送的udp数据包携带的服务端的ip地址;若判断获知服务端的ip地址发生变化,则断开当前连接,根据服务端变化后的ip地址,与服务端建立新的连接,以被服务端发现。
本发明另一实施例公开一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的跨网段发现设备的方法,例如包括:若判断获知ip地址发生变化,则根据变化后的ip地址,生成udp数据包;广播udp数据包,以根据udp数据包与客户端建立新的连接;根据新的连接,发现客户端;又例如包括:接收服务端发送的udp数据包;获取服务端发送的udp数据包携带的服务端的ip地址;若判断获知服务端的ip地址发生变化,则断开当前连接,根据服务端变化后的ip地址,与服务端建立新的连接,以被服务端发现。
此外,上述的存储器502中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明另一实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的跨网段发现设备的方法,例如包括:若判断获知ip地址发生变化,则根据变化后的ip地址,生成udp数据包;广播udp数据包,以根据udp数据包与客户端建立新的连接;根据新的连接,发现客户端;又例如包括:接收服务端发送的udp数据包;获取服务端发送的udp数据包携带的服务端的ip地址;若判断获知服务端的ip地址发生变化,则断开当前连接,根据服务端变化后的ip地址,与服务端建立新的连接,以被服务端发现。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行上述各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。