欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 域名解析方法和装置独创技术25292字

域名解析方法和装置

2021-01-31 23:22:49

域名解析方法和装置

  技术领域

  本申请涉及网络通信技术领域,更具体的说是涉及一种域名解析方法和装置。

  背景技术

  域名解析是指将域名解析到一个IP地址。

  目前域名解析中,一般都是一个域名唯一对应一个IP地址,因此,每个域名只能解析到一个固定的IP地址。而很多场景下却可能希望域名与IP地址之间的对应关系更为灵活,使得一个域名可以对应有多个IP地址或者一个域名可以对应到用户期望的IP地址。如,在压力测试过程中,待测试的网站有网站A、网站B和网站C,但是希望能够在不改变测试逻辑的情况下,能够对网站C进行测试,则需要将测试过程中的域名解析到网站C的IP地址。又如,在大数据舆情监控场景中,可能需要门户网站爬取数据,而门户网站可能会设置有多个访问节点,为了降低单个访问节点的压力,可能需要将域名对应该多个访问节点的IP,以分散访问压力。因此,在存在域名能够灵活对应IP地址的需求下,如何实现较为灵活的域名解析是本领域技术人员迫切需要解决的技术问题。

  发明内容

  有鉴于此,本申请提供了一种域名解析方法和装置,以实现域名配置以及解析的灵活性。

  为实现上述目的,本申请提供如下技术方案:

  一方面,本申请提供了一种域名解析方法,包括:

  获得客户端传输的域名解析包;

  解析出所述域名解析包中待解析的目标域名;

  调用文件读取函数,并将所述目标域名传递给所述文件读取函数;

  通过所述文件读取函数从解析配置文件中查询所述目标域名对应的至少一个IP地址,所述解析配置文件为由用户配置的,且包含有至少一对域名IP对应关系,所述域名IP对应关系中包括域名以及所述域名对应的一个或者多个IP地址;

  通过所述文件读取函数从查询到的至少一个IP地址中,确定出作为域名解析结果的目标IP地址;

  将所述目标IP地址返回给所述客户端。

  优选的,所述通过所述文件读取函数从查询到的至少一个IP地址中,确定出作为域名解析结果的目标IP地址,包括:

  在从所述解析配置文件中查询出所述目标域名对应一个IP地址,则通过所述文件读取函数将查询到的IP地址确定为作为域名解析结果的目标IP地址;

  在从所述解析配置文件中查询出所述目标域名对应多个IP地址,则通过所述文件读取函数按照设定选取策略,从所述多个IP地址中选取一个IP地址作为域名解析结果的目标IP地址。

  优选的,所述通过所述文件读取函数按照设定选取策略,从所述多个IP地址中选取一个IP地址作为域名解析结果的目标IP地址,包括:

  通过所述文件读取函数从所述多个IP地址中随机选取一个IP地址作为域名解析结果的目标IP地址。

  优选的,所述获得客户端传输的域名解析包,包括:

  获得客户端传输的多个域名解析包;

  或者,获得多个客户端传输的域名解析包,得到待解析的多个域名解析包;

  在所述解析出所述域名解析包中待解析的目标域名之前,还包括:

  根据获得的域名解析包的数量,启动多个解析线程;

  将获得的多个域名解析包分别分配给所述多个解析线程,以使得每个解析线程分配有一个域名解析包;

  所述解析所述域名解析包中待解析的目标域名,包括:

  针对每个域名解析包,利用该域名解析包对应的解析线程解析出所述域名解析包中待解析的目标域名;

  所述调用文件读取函数,并将所述目标域名传递给所述文件读取函数,包括:

  利用所述解析线程调用文件读取函数,并将所述解析线程解析出的目标域名传递给所述文件读取函数。

  优选的,所述根据获得的域名解析包的数量,启动多个解析线程,包括:

  调用异步并发程序,并通过所述异步并发程序基于待处理的域名解析包的数量,启动多个解析线程。

  又一方面,本申请还提供了一种域名解析装置,包括:

  包获得单元,用于获得客户端传输的域名解析包;

  包解析单元,用于解析出所述域名解析包中待解析的目标域名;

  函数调用单元,用于调用文件读取函数,并将所述目标域名传递给所述文件读取函数;

  文件查询单元,用于通过所述文件读取函数从解析配置文件中查询所述目标域名对应的至少一个IP地址,所述解析配置文件为由用户配置的,且包含有至少一对域名IP对应关系,所述域名IP对应关系中包括域名以及所述域名对应的一个或者多个IP地址;

  IP确定单元,用于通过所述文件读取函数从查询到的至少一个IP地址中,确定出作为域名解析结果的目标IP地址;

  IP返回单元,用于将所述目标IP地址返回给所述客户端。

  优选的,所述IP确定单元,,包括:

  第一IP确定单元,用于在从所述解析配置文件中查询出所述目标域名对应一个IP地址,则通过所述文件读取函数将查询到的IP地址确定为作为域名解析结果的目标IP地址;

  第二IP确定单元,用于在从所述解析配置文件中查询出所述目标域名对应多个IP地址,则通过所述文件读取函数按照设定选取策略,从所述多个IP地址中选取一个IP地址作为域名解析结果的目标IP地址。

  优选的,所述第二IP确定单元,具体用于,通过所述文件读取函数从所述多个IP地址中随机选取一个IP地址作为域名解析结果的目标IP地址。

  优选的,所述包获得单元,具体为,用于获得客户端传输的多个域名解析包;或者,获得多个客户端传输的域名解析包,得到待解析的多个域名解析包;

  所述装置,还包括:

  线程启动单元,用于在包解析单元解析所述域名解析包之前,根据获得的域名解析包的数量,启动多个解析线程;

  包分配单元,用于将获得的多个域名解析包分别分配给所述多个解析线程,以使得每个解析线程分配有一个域名解析包;

  所述包解析单元,具体为,用于针对每个域名解析包,利用该域名解析包对应的解析线程解析出所述域名解析包中待解析的目标域名;

  所述函数调用单元,具体为,用于利用所述解析线程调用文件读取函数,并将所述解析线程解析出的目标域名传递给所述文件读取函数。

  优选的,所述线程启动单元具体为,用于调用异步并发程序,并通过所述异步并发程序基于待处理的域名解析包的数量,启动多个解析线程。

  经由上述的技术方案可知,在本申请实施例中可以由用户根据实际需要,较为灵活的在解析配置文件中配置域名对应的一个或者多个IP地址。在此基础上,设备确定出待解析的目标域名之后,只需要通过调用文件读取函数便可以从该解析配置文件中查询出用户为该目标域名配置的至少一个IP地址,并从用户为该目标域名配置的至少一个IP地址中确定作为解析结果的目标IP地址,从而无需较为复杂的配置,便可以实现将域名解析为用户期望的IP地址,实现了域名解析的灵活性。

  附图说明

  为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

  图1示出了本申请一种域名解析方法一个实施例的流程示意图;

  图2示出了本申请一种域名解析方法又一个实施例的流程示意图;

  图3示出了本申请一种域名解析装置一个实施例的组成结构示意图。

  具体实施方式

  本申请实施例的域名解析方法和装置可以应用于任意的计算机设备,如服务器、个人计算机,或者用于测试或者数据分析的计算机设备。

  本申请的域名解析方法和装置可以在无需较为复杂配置的情况下,便可以实现域名解析过程中支持用户为一个域名配置一个或者多个IP地址,并能够基于用户为域名配置的一个或者多个IP地址,将域名解析为用户配置的IP地址中的某一个IP地址,既能够降低支持多IP地址的域名解析的复杂度,又能够提高域名解析的灵活性。

  下面结合流程图对本申请的域名解析方法进行介绍。

  如图1所示,其示出了本申请一种域名解析方法一个实施例的流程示意图,本实施例的方法可以应用于计算机设备,如,该计算机设备上可以运行有域名解析程序,通过该域名解析程序可以实现本申请的域名解析方法。

  本实施例的方法可以包括:

  S101,获得客户端传输的域名解析包。

  S102,解析出该域名解析包中待解析的目标域名。

  其中,该域名解析包可以为待进行域名解析的数据包,在该数据包中可以包含待解析的域名,因此,通过解析该域名数据包可以得到待解析的域名。

  如,可以获得客户端传输的域名解析请求,该域名解析请求可以以数据包形式存在。该域名解析请求中可以携带待解析的域名,因此,通过解析该域名解析请求可以得到待解析的域名。

  其中,为了便于区分,本申请将待解析的域名称为目标域名。

  需要说明的是,本申请中发出域名解析包的客户端所在的电子设备可以为该计算机设备,也可以是为该计算机设备之外的其他电子设备。如,客户端为浏览器的客户端,该客户端可以与该域名解析程序运行于同一个计算机设备中;又如,客户端所属的电子设备与该计算机设备不同,在该计算机设备上运行有代理服务器,则客户端通过该代理服务器将该域名解析包传输给该域名解析程序。

  S103,调用文件读取函数,并将该目标域名传递给该文件读取函数。

  S104,通过该文件读取函数从解析配置文件中查询该目标域名对应的至少一个IP地址。

  其中,该解析配置文件为由用户配置的,且包含有至少一对域名IP对应关系。每对域名IP对应关系中包括域名以及域名对应的一个或者多个IP地址。

  与现有的在域名解析服务器为每个域名预置不同的IP地址不同,在本申请中,是通过单独配置一个解析配置文件来用于存储域名与IP地址对应关系,通过修改该解析配置文件便可以灵活设置域名所可以映射到的一个或者多个IP地址。

  而且,在测试或者数据获取场景中,如果希望更改测试设备或者获取数据的对象,也可以直接修改该解析配置文件便可以更改域名所可能映射到的IP地址,而无需整个调整域名解析服务器的域名解析逻辑。

  其中,该文件读取函数可以认为是封装的一个方法,该文件读取函数用于读取该解析配置文件,并从解析配置文件中查询出域名对应的IP地址。

  如,在计算机设备运行的域名解析程序包含有该文件读取函数,在域名解析程序获得待解析的域名之后,可以调用该文件读取函数,并将待解析的域名传递给该文件读取函数,以通过该文件读取函数查询解析配置文件,并确定域名可映射到的IP地址。

  S105,通过该文件读取函数从查询到的至少一个IP地址中,确定出作为域名解析结果的目标IP地址。

  其中,该目标IP地址为最终确定出目标域名对应的域名解析结果的IP地址。

  可以理解的是,从查询到的至少一个IP地址中确定作为域名解析结果的IP地址的方式也可以有多种情况。

  如,在从解析配置文件中查询出目标域名对应的IP地址只有一个的情况下,则通过该文件读取函数将查询的IP地址确定为作为域名解析结果的目标IP地址,即最终解析出的IP地址。

  又如,在从解析配置文件中查询出目标域名对应多个IP地址则通过文件读取函数按照设定选取策略,从该多个IP地址中选取一个IP地址作为域名解析结果的目标IP地址。

  其中,设定的选择策略可以根据需要设定。如,在一种可能的方式中,设定选取策略为随机选择策略。相应的,可以通过该文件读取函数从该多个IP地址中随机选取一个IP地址作为域名解析结果的目标IP地址。

  举例说明,假设在大数据舆情监控场景中,需要获得大量的数据支撑,而这些数据是需要去各大公开型的网站去爬取。而大多数门户网站都在全国多个城市都设置有访问节点,以不同城市的用户可以通过客户端访问相应城市的访问节点,以提高访问速度并能减少访问节点的访问压力。然而,在数据爬取过程中,如果将该网站的域名配置为固定的IP地址,那么每次就只能访问该网站中某个固定的访问节点,导致该访问节点的压力较大。而本申请通过在解析配置文件中将该网站的域名配置为对应该网站的多个访问节点的IP地址,并在域名解析过程中每次从该多个IP地址中随机选取一个IP地址作为该网站的域名对应的目标IP地址,有利于分散的从网站的多个访问节点中爬取数据,降低单个访问节点的压力。

  又如,在又一种可能的方式中,设定选择策略可以为按照域名对应的多个IP地址的先后顺序,作为该多个IP地址被确定为域名对应的IP地址的先后顺序。在此基础上,每次接收到该域名的解析请求之后,可以按照该先后顺序确定出一个目标IP地址,下一次再接收到该域名的解析请求之后,则可以将下一顺序的IP地址确定为目标IP地址。

  当然,设定选择策略还可以有其他可能,对此不加限制。

  S106,将该目标IP地址返回给该客户端。

  如,域名解析程序从文件读取函数获得确定出的目标IP地址,并将目标IP地址返回给发送该域名解析包的客户端。

  其中,将解析得到的目标IP地址返回给客户端的具体方式可以不加限制,如,可以将目标IP地址封装成数据包之后,将封装有目标IP地址的数据包发送给相应的客户端。

  可见,在本申请实施例中可以由用户根据实际需要,在解析配置文件中配置域名对应的一个或者多个IP地址。在此基础上,设备确定出待解析的目标域名之后,只需要通过调用文件读取函数便可以从该解析配置文件中查询出用户为该目标域名配置的至少一个IP地址,并从用户为该目标域名配置的至少一个IP地址中确定作为解析结果的目标IP地址,从而无需较为复杂的配置,便可以实现将域名解析为用户期望的IP地址,实现了域名解析的灵活性。

  同时,本申请的发明人经过研究发现:虽然可以通过一个云平台等来实现为一个域名配置多个IP地址,但是配置以及部署云平台的复杂度较高,不利于测试或者数据爬取等场景中,较为便捷的实现为一个域名配置多个IP地址并实现灵活的域名解析。而本申请中只需要在解析配置文件进行相关配置,而无需其他较为复杂的配置,便可以基于本申请的方案实现灵活的为域名配置多个IP地址并进行相应的域名解析。

  如,只需要计算机设备安装并运行域名解析程序,在此基础上,用户在解析配置文件进行相关域名与IP的配置之后,便可以通过域名解析程序中的文件读取函数读取该解析配置文件并从该域名对应的多个IP中确定目标IP,整个过程安装以及配置均较为简单。

  而且,在需要修改解析配置文件中域名IP对应关系之后,由于解析配置文件是独立的文件,不涉及到域名解析程序的代码修改等,因此,也无需重新运行便可以基于修改后的解析配置文件进行域名解析。

  可以理解的是,计算机设备在同一个时刻可能会存在多个待解析的域名,如果计算机设备依次解析该多个域名,必然需要耗费较长时间,导致解析延迟,使得客户端等待解析结果的时间相对较少。为了解决该问题,本申请还提供了并发处理多个待解析的域名的方案。

  如,参见图2,其示出了本申请一种域名解析方法又一个实施例的流程示意图,本实施例的方法可以包括:

  S201,获得多个域名解析包。

  如,获得客户端传输的多个域名解析包。或者是,获得多个客户端传输的域名解析包,得到多个待解析的域名解析包。

  S202,根据获得的域名解析包的数量,启动多个解析线程。

  为了提高域名解析效率,在同时存在多个待解析的域名解析包的情况下,计算机设备会启动多个解析线程,以通过该多个解析线程分别对不同域名解析包进行解析,使得该多个域名解析包的并发解析。

  如,在一种实现方式中,可以调用异步并发程序,并通过该异步并发程序基于待处理的域名解析包的数量,启动多个解析线程。如,在域名解析程序可以调用与该域名解析包封装到同一个程序包内的异步并发程序,以通过该异步并发程序实现启动多个线程,本申请将启动的多个线程称为解析线程。

  可选的,该异步并发程序可以为基于python语言的异步并发程序,如该异步并发程序可以为gevent程序。

  S203,将获得的多个域名解析包分别分配该多个解析线程,以使得每个解析线程分配有一个域名解析包。

  S204,针对每个域名解析包,利用该域名解析包对应的解析线程解析出该域名解析包中待解析的目标域名。

  其中,多个解析线程可以并发对各自需要处理的域名解析包进行处理。

  S205,利用该解析线程调用文件读取函数,并将该解析线程解析出的目标域名传递给该文件读取函数。

  S206,针对每个解析线程,通过该文件读取函数从解析配置文件中查询该目标域名对应的至少一个IP地址,并从该至少一个IP地址中确定出作为域名解析结果的目标IP地址。

  每个解析线程在解析出域名解析包中的目标域名之后,均可以调用文件读取函数以读取解析配置文件,并最终确定该解析线程解析出的目标域名对中对应的域名解析结果。

  其中,该文件读取函数解析得到目标IP地址的过程可以参见前面实施例的相关介绍,在此不再赘述。

  S207,通过解析线程获得文件读取函数将目标域名解析出的目标IP地址,并将目标IP地址发送给请求解析该目标域名的客户端。

  每个解析线程在将解析的目标域名发送给文件读取函数之后,均可以可以获得该文件读取函数对该目标域名解析出的目标IP地址,相应的,解析线程可以将该目标IP返回给相应的客户端。

  对应本申请的一种域名解析方法,本申请还提供了一种域名解析装置,如图3所示,其示出了本申请一种域名解析装置一个实施例的组成结构示意图。本实施例的装置可以包括:

  包获得单元301,用于获得客户端传输的域名解析包;

  包解析单元302,用于解析出所述域名解析包中待解析的目标域名;

  函数调用单元303,用于调用文件读取函数,并将所述目标域名传递给所述文件读取函数;

  文件查询单元304,用于通过所述文件读取函数从解析配置文件中查询所述目标域名对应的至少一个IP地址,所述解析配置文件为由用户配置的,且包含有至少一对域名IP对应关系,所述域名IP对应关系中包括域名以及所述域名对应的一个或者多个IP地址;

  IP确定单元305,用于通过所述文件读取函数从查询到的至少一个IP地址中,确定出作为域名解析结果的目标IP地址;

  IP返回单元306,用于将所述目标IP地址返回给所述客户端。

  在一种可能的实现方式中,所述IP确定单元,,包括:

  第一IP确定单元,用于在从所述解析配置文件中查询出所述目标域名对应一个IP地址,则通过所述文件读取函数将查询到的IP地址确定为作为域名解析结果的目标IP地址;

  第二IP确定单元,用于在从所述解析配置文件中查询出所述目标域名对应多个IP地址,则通过所述文件读取函数按照设定选取策略,从所述多个IP地址中选取一个IP地址作为域名解析结果的目标IP地址。

  可选的,所述第二IP确定单元,具体用于,通过所述文件读取函数从所述多个IP地址中随机选取一个IP地址作为域名解析结果的目标IP地址。

  在又一种可能的实现方式中,所述包获得单元,具体为,用于获得客户端传输的多个域名解析包;或者,获得多个客户端传输的域名解析包,得到待解析的多个域名解析包;

  所述装置,还包括:

  线程启动单元,用于在包解析单元解析所述域名解析包之前,根据获得的域名解析包的数量,启动多个解析线程;

  包分配单元,用于将获得的多个域名解析包分别分配给所述多个解析线程,以使得每个解析线程分配有一个域名解析包;

  所述包解析单元,具体为,用于针对每个域名解析包,利用该域名解析包对应的解析线程解析出所述域名解析包中待解析的目标域名;

  所述函数调用单元,具体为,用于利用所述解析线程调用文件读取函数,并将所述解析线程解析出的目标域名传递给所述文件读取函数。

  可选的,所述线程启动单元具体为,用于调用异步并发程序,并通过所述异步并发程序基于待处理的域名解析包的数量,启动多个解析线程。

  对于装置实施例而言,由于其基本相应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

  在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,在没有超过本申请的精神和范围内,可以通过其他的方式实现。当前的实施例只是一种示范性的例子,不应该作为限制,所给出的具体内容不应该限制本申请的目的。例如,所述单元或子单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或多个子单元结合一起。另外,多个单元可以或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

  另外,所描述系统和方法以及不同实施例的示意图,在不超出本申请的范围内,可以与其它系统,模块,技术或方法结合或集成。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

  以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

《域名解析方法和装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)