一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

IP地址动态切换方法、装置、主机及可读存储介质与流程

2022-02-20 01:18:18 来源:中国专利 TAG:

ip地址动态切换方法、装置、主机及可读存储介质
技术领域
1.本发明涉及计算机网络技术领域,具体而言,涉及一种ip地址动态切换方法、装置、主机及可读存储介质。


背景技术:

2.随着网络监管的不断加强,当网络运营厂商或者网络代理机构发现进行网络攻击的ip地址或者接收到被投诉的ip地址时,通常会对该ip地址进行一段时间的封停,ip地址一旦封停就无法使用,现有方式通常是采用多网口的方式,配置多个网段,在一个ip地址封停时将攻击程序迁移至另一个网段或者在另一个网段上重新部署攻击程序,该实现过程通常需要暂时中断攻击程序的运行,因而稳定性较差。


技术实现要素:

3.本发明提供了一种ip地址动态切换方法、装置、主机及可读存储介质,其能够通过将程序以docker容器的方式实现,并将docker容器的网络模式设置为macvlan网络模式,在ip地址不可用时自动切换docker容器的ip地址,增强了docker容器与外网通信的稳定性,进而保证程序运行的稳定性。
4.为了实现上述目的,本发明采用的技术方案如下:
5.第一方面,本发明提供了一种ip地址动态切换方法,应用于主机,所述主机部署有docker容器,所述docker容器的网络模式为macvlan网络模式,所述方法包括:获取所述docker容器的当前ip地址;若所述当前ip地址不可用,则从预设配置文件中获取目标ip地址;将所述docker容器的ip地址从所述当前ip地址切换至所述目标ip地址,以使所述docker容器通过所述目标ip地址与外网通信。
6.第二方面,本发明提供了一种ip地址动态切换装置,应用于主机,所述主机部署有docker容器,所述docker容器的网络模式为macvlan网络模式,所述装置包括:获取模块,用于获取所述docker容器的当前ip地址;所述获取模块,还用于若所述当前ip地址不可用,则从预设配置文件中获取目标ip地址;切换模块,用于将所述docker容器的ip地址从所述当前ip地址切换至所述目标ip地址,以使所述docker容器通过所述目标ip地址与外网通信。
7.第三方面,本发明提供了一种主机,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序包括前端组件、后端组件和浏览器,所述处理器执行所述计算机程序时实现如上述的ip地址动态切换方法。
8.第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的ip地址动态切换方法。
9.与现有技术相比,本发明引入docker容器及docker容器的macvlan网络模式,使得以docker容器方式运行的程序支持ip地址的自动切换,在需要切换的时候自动从预设配置文件中获取可用的ip地址,实现docker容器的ip地址的自动切换,避免了ip地址不可用时程序的中断,进而实现了程序运行的稳定性和连续性。
附图说明
10.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
11.图1为本发明实施例提供的应用场景示例图。
12.图2为本发明实施例提供的主机的方框示意图。
13.图3为本发明实施例提供的一种ip地址动态切换方法的流程示例图。
14.图4为本发明实施例提供的另一种ip地址动态切换方法的流程示例图。
15.图5为本发明实施例提供的另一种ip地址动态切换方法的流程示例图。
16.图6为本发明实施例提供的另一种ip地址动态切换方法的流程示例图。
17.图7为本发明实施例提供的一种ip地址动态切换装置的方框示例图。
18.图标:10-主机;11-处理器;12-存储器;13-总线;14-通信接口;100-ip地址动态切换装置;110-获取模块;120-切换模块;130-更新模块。
具体实施方式
19.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
20.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
22.在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
23.此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
24.需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
25.现阶段,随着网络监管力度加大,很多网络攻击程序,例如,爬虫程序或者扫描程序不允许部署在云服务器上,一旦发现运行此类程序的主机,就会对该主机的ip地址进行封禁,为了保证网络攻击程序的正常运行,通常会将该程序重新部署至另一个网段,以绕过对网络攻击程序的限制和监管。
26.重新部署的过程需要暂时中断网络攻击程序,影响了网络攻击程序运行的稳定性,发明人针对此问题进行深入分析发现,如果能够在ip地址被封禁时,及时地自动将其切
换至可用ip地址,则能够避免网络攻击程序的中断,保证网络攻击程序运行的稳定性和连续性。基于此,发明人引入docker容器技术,并利用docker容器的macvlan网络模式,使得以docker容器方式运行的程序支持ip地址的自动切换,再将可用的ip地址预先写入至预设配置文件中,在需要切换的时候自动从该预设配置文件中获取可用的ip地址,实现docker容器的ip地址的自动切换,避免了ip地址不可用时程序的中断,进而实现了程序运行的稳定性和连续性。
27.在本实施例中,docker容器是一个应用容器引擎,让开发者可以打包他们的应用程序以及依赖包到一个可移植的镜像中,然后发布到任何流行的linux或windows机器上,也可以实现虚拟化。
28.在本实施例中,macvlan技术本质上是一种网卡虚拟化技术,其功能是允许在同一个物理网卡上虚拟出多个网卡,通过不同的媒体访问控制mac地址(media access control address,mac)在数据链路层进行网络数据的转发,一块网卡上配置多个mac地址(即多个网口interface),每个interface可以配置自己的ip,docker的macvlan网络模式实际上就是macvlan技术的网络模式。
29.需要说明的是,本发明实施例提供的方式,并不仅仅针对网络攻击程序,对于一般的应用程序也同样适用,下面将对其进行详细描述。
30.请参考图1,图1为本发明实施例提供的应用场景示例图,主机10配置有两个ip地址:1.1.1.1和2.2.2.2,前者是主机本身(也称为宿主机)使用的ip地址,后者是docker容器(实际上是宿主机上运行的软件虚拟出来的独立对外通信的虚拟设备)使用的ip地址,通过两个不同的ip地址,主机10可以接入两个不同网段的网络:网络lan1和网络lan2,由此避免了docker容器对主机10自身的影响,实现了主机10自身与其中docker容器之间的隔离,本发明实施例提供的ip地址动态切换方法是以docker容器的方式运行的。
31.基于图1的应用场景,本发明实施例还提供了主机10的方框示意图,请参照图2,图2为本发明实施例提供的主机的方框示意图,主机10包括处理器11、存储器12、总线13、通信接口14。处理器11、存储器12通过总线13连接,处理器11通过通信接口14与外网通信。
32.处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
33.存储器12用于存储程序,例如,本发明实施例中的ip地址动态切换装置,ip地址动态切换装置包括至少一个可以软件或固件(firmware)的形式存储于存储器12中的软件功能模块,处理器11在接收到执行指令后,执行所述程序以实现本发明实施例中的ip地址动态切换方法。
34.存储器12可能包括高速随机存取存储器(ram:random access memory),也可能还包括非易失存储器(non-volatile memory)。可选地,存储器12可以是内置于处理器11中的存储装置,也可以是独立于处理器11的存储装置。
35.总线13可以是isa总线、pci总线或eisa总线等。图2仅用一个双向箭头表示,但并
不表示仅有一根总线或一种类型的总线。
36.主机10可以是单个独立的计算机,也可以是由多个独立的计算机组成的计算机集群。
37.在图1和图2的基础上,本发明实施例还提供了一种应用于图1和图2中主机10的ip地址动态切换方法,请参照图3,图3为本发明实施例提供的一种ip地址动态切换方法的流程示例图,该方法包括以下步骤:
38.步骤s100,获取docker容器的当前ip地址。
39.在本实施例中,作为一种具体实现方式,可以通过docker容器自带的命令docker inspect镜像名字/镜像id|grep ipaddress获取docker容器的当前ip地址,当然,也可在配置docker容器的ip地址时,预先记录配置的ip地址。
40.步骤s110,若当前ip地址不可用,则从预设配置文件中获取目标ip地址。
41.在本实施例中,当前ip地址不可用是指通过当前ip地址,docker容器无法与外网通信,作为一种具体实现方式,可以通过docker自带命令docker exec-ti镜像名字/镜像id sh-c"ping目标地址"判断当前ip地址是否可用。
42.在本实施例中,目标ip地址为可用的ip地址,在当前ip地址为一次性使用的场景下,目标ip地址是与当前ip地址不同的ip地址。
43.在本实施例中,预设配置文件可以记录多个连续的ip地址,也可以记录至少一个非连续的ip地址,预设配置文件可以通过记录连续ip地址的起始ip地址及待分配序号,标识当前使用到的ip地址的地址,预设配置文件也可以记录一个连续ip地址的列表或者非连续ip地址的列表,从该列表中选择一个作为目标ip地址。
44.作为一种具体实现方式,预设配置文件中ip地址列表可以根据网络运营服务提供商会提供多个网段生成的,例如,网段为:162.22.22.1-162.22.22.255,则生成的预设配置文件中的地址列表包括该网段之间的所有ip地址。
45.步骤s120,将docker容器的ip地址从当前ip地址切换至目标ip地址,以使docker容器通过目标ip地址与外网通信。
46.在本实施例中,可以周期性地获取docker容器的当前ip地址,判断当前ip地址是否可用,在当前ip地址不可用时,获取目标ip地址,进行docker容器的ip地址的切换,也可以在docker容器需要和外网通信时,获取docker容器的当前ip地址,判断当前ip地址是否可用,在当前ip地址不可用时,获取目标ip地址,进行docker容器的ip地址的切换。
47.本发明实施例提供的上述方法,引入docker容器及docker容器的macvlan网络模式,使得以docker容器方式运行的程序支持ip地址的自动切换,在需要切换的时候自动从预设配置文件中获取可用的ip地址,实现docker容器的ip地址的自动切换,避免了ip地址不可用时程序的中断,进而实现了程序运行的稳定性和连续性。
48.基于图3,本发明实施例还提供了两种获取目标ip地址的具体实现方式,请分别参照图4和图5,图4是预设配置文件中记录的ip地址是连续时的一种具体实现方式,图5是预设配置文件中记录的ip地址是非连续时的一种具体实现方式。
49.请参照图4,图4为本发明实施例提供的另一种ip地址动态切换方法的流程示例图,步骤s110包括以下子步骤:
50.子步骤s1101,根据起始ip地址及待分配序号,计算待分配ip地址,并将待分配ip
地址作为目标ip地址。
51.在本实施例中,根据起始ip地址及待分配序号进行依次分配,例如,起始ip地址为162.22.22.1,待分配序号为4,且待分配序号逐渐增加的,则待分配ip地址为162.22.22.5,下一次分配的ip地址为162.22.22.6。
52.在本实施例中,为了使下一次能够正确地分配ip地址,在本次分配ip地址之后,还需要对待分配序号进行更新,具体方式为:
53.更新待分配序号。
54.在本实施例中,预设配置文件中可以根据起始ip地址,逐渐增加待分配序号得到待分配ip地址,也可以根据起始ip地址,逐渐减小待分配序号得到待分配ip地址,本发明实施例对此不予限定。
55.请参照图5,图5为本发明实施例提供的另一种ip地址动态切换方法的流程示例图,步骤s110还包括以下子步骤:
56.子步骤s1102,从多个ip地址中随机选择一个ip地址作为目标ip地址。
57.在本实施例中,如果docker容器配置为可以支持多个网段,则预设配置文件中可以包括属于多个不同网段的ip地址,启动docker镜像时使用配置网段中的ip地址方可实现对外网的访问。
58.需要说明的是,当预设配置文件中的ip地址为非连续时,根据需要也可以按照预设顺序进行选择,例如,每次选择与上次不同地址段的ip地址,或者按照ip地址从大到小、或者从小到大的顺序进行选择。
59.在本实施例中,在某些应用场景下,要求每次使用的ip地址都是不一样的,例如,在每次扫描时都要求采用不同的ip地址,以免利用同一个ip地址进行多次扫描时被检测为恶意攻击而被封,此时,每个ip地址都是一次性使用,为了避免ip地址被重复使用,本发明实施例还提供了一种更新预设配置文件的方式,具体是:
60.若当前ip地址不可用、且当前ip地址存在于预设配置文件,则将当前ip地址从预设配置文件中删除。
61.由于对预设配置文件中的ip地址进行一次性使用,保证了动态ip地址的鲜活,从而保证通过鲜活的ip地址进行扫描或者爬虫等应用时得到的数据量比较多,数据也与实际更接近、更可靠。
62.在本实施例中,若预设配置文件中的ip地址均变为不可用,即此时预设配置文件中不存在可用的ip地址时,为了使预设配置文件及时得以更新,可以采用如下方式:
63.若检测到预设配置文件中不存在ip地址,则进行预设配置文件需要更新的提示。
64.在本实施例中,更新提示的方式可以是通过邮件、或者企业微信发送提示消息,或者是弹出信息框,提示预设配置文件需要更新。
65.在本实施例中,对于有禁用时限的ip地址,当禁用结束后,可以再次使用,本发明实施例还提供了该场景下对预设配置文件进行更新的具体实现方式,请参照图6,图6为本发明实施例提供的另一种ip地址动态切换方法的流程示例图,该方法还包括以下步骤:
66.步骤s130,获取当前系统时间。
67.在本实施例中,主机预先存储有不可用ip地址及对应的禁用结束时间,作为一种具体实现方式,可以从指定邮件中获取不可用ip地址及禁用开始时间及禁用时长,根据禁
用开始时间及禁用时长计算禁用结束时间,例如,禁用开始时间为:2020-10-18:18:00,禁用时长为1个月,则禁用结束时间为:2020-11-18:18:00,还可以将不可用ip地址及对应的禁用结束时间直接记录于预设禁用信息文件或者专门数据库中,主机直接从该预设禁用信息文件或者专门数据库中读取该信息。
68.步骤s131,若禁用结束时间早于当前系统时间,则将不可用ip地址作为可用ip地址加入至预设配置文件。
69.需要说明的是,图6只是一种具体实现方式的示例图,并不表示步骤s130-s131一定要在步骤s120之后执行,当其在步骤s120之后执行时,则下一次需要获取目标ip地址时就可以从更新后的预设配置文件中获取,当然,步骤s130-s131可以在上述步骤s110之前执行,则步骤s110利用更新后的预设配置文件获取目标ip地址。
70.需要说明的是,本发明实施例提供的上述实施例及各个可能的实施方式中的相应步骤,除了在ip地址不可用时提高了程序重新部署的效率及从不可用ip地址到目标ip地址迁移的迁移效率,而且还可以用于网络的测量和绘制的应用场景,即通过扫描预设网络中所有主机,获取主机的各种信息,以了解预设网络中各主机的运行状况,绘制出主机的运行状态图及主机之间的通信交互图,以便对预设网络的整体运行情况做出合理评价,并根据评价结果有针对性地进行优化。
71.为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种ip地址动态切换装置100的实现方式。请参照图7,图7示出了本发明实施例提供的ip地址动态切换装置100的方框示意图。需要说明的是,本实施例所提供的ip地址动态切换装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
72.ip地址动态切换装置100包括获取模块110、切换模块120及更新模块130。
73.获取模块110,用于获取docker容器的当前ip地址。
74.获取模块110,还用于若当前ip地址不可用,则从预设配置文件中获取目标ip地址。
75.作为一种具体实施方式,预设配置文件中记录有起始ip地址和待分配序号,获取模块110具体用于:根据起始ip地址及待分配序号,计算待分配ip地址,并将待分配ip地址作为目标ip地址。
76.作为一种具体实施方式,获取模块110具体还用于:更新待分配序号。
77.作为一种具体实施方式,预设配置文件记录有多个ip地址,获取模块110具体还用于:从多个ip地址中随机选择一个ip地址作为目标ip地址。
78.切换模块120,用于将docker容器的ip地址从当前ip地址切换至目标ip地址,以使docker容器通过目标ip地址与外网通信。
79.更新模块130,用于:获取当前系统时间;若禁用结束时间早于当前系统时间,则将不可用ip地址作为可用ip地址加入至预设配置文件。
80.作为一种具体实现方式,更新模块130还用于:若当前ip地址不可用、且当前ip地址存在于预设配置文件,则将当前ip地址从预设配置文件中删除。
81.作为一种具体实现方式,更新模块130还用于:若检测到预设配置文件中不存在ip地址,则进行预设配置文件需要更新的提示。
82.本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机
程序包括前端组件、后端组件和浏览器,计算机程序被处理器执行时实现如上述的ip地址动态切换方法。
83.综上所述,本发明实施例提供了一种ip地址动态切换方法、装置、主机及可读存储介质,应用于主机,主机部署有docker容器,docker容器的网络模式为macvlan网络模式,所述方法包括:获取docker容器的当前ip地址;若当前ip地址不可用,则从预设配置文件中获取目标ip地址;将docker容器的ip地址从当前ip地址切换至目标ip地址,以使docker容器通过目标ip地址与外网通信。与现有技术相比,本发明实施例引入docker容器及docker容器的macvlan网络模式,使得以docker容器方式运行的程序支持ip地址的自动切换,在需要切换的时候自动从预设配置文件中获取可用的ip地址,实现docker容器的ip地址的自动切换,避免了ip地址不可用时程序的中断,进而实现了程序运行的稳定性和连续性。
84.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献