域名的解析方法和装置、存储介质、电子装置与流程

文档序号:14914838发布日期:2018-07-11 00:26阅读:151来源:国知局

本发明涉及互联网领域,具体而言,涉及一种域名的解析方法和装置、存储介质、电子装置。



背景技术:

域名系统DNS(英文全称为Domain Name System),是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串,通过主机名,最终得到该主机名对应的IP地址的过程即域名解析(或主机名解析)。

DNS的作用是把网络地址(域名,以一个字符串的形式存在)对应到真实的计算机能够识别的网络地址(IP地址),以便计算机能够进一步通信,传递网址和内容等。发生DNS劫持(又称域名劫持)时,在劫持网络范围内的域名解析请求会被拦截,劫持者通过分析请求的域名,返回假的IP地址或者什么都不做使请求失去响应,对特定的网络不能访问或访问的是假网址。

DNS作为互联网的基础服务之一,几乎所有的应用都会使用到,但是一旦发生了DNS劫持,会对服务和应用造成不可预期的问题,甚至造成用户的财产损失,使得DNS劫持成为了一种典型的威胁网络安全的行为。

针对相关技术中DNS劫持造成的网络安全性较低的技术问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种域名的解析方法和装置、存储介质、电子装置,以至少解决相关技术中DNS劫持造成的网络安全性较低的技术问题。

根据本发明实施例的一个方面,提供了一种域名的解析方法,包括:获取到第一客户端请求访问的第一域名;获取第一服务器的第一地址,其中,第一服务器用于解析出与第一域名对应的目标地址,第一地址由第二客户端配置,第一客户端和第二客户端安装在同一终端上;通过第一服务器的第一地址向第一服务器发送第一请求,其中,第一请求用于获取与第一客户端请求访问的第一域名对应的目标地址;在获取到第一服务器返回的目标地址的情况下,通过第一客户端访问目标地址所指向的服务器。

根据本发明实施例的一个方面,提供了一种域名的解析方法,包括:接收到第一请求,其中,第一地址由第二客户端配置,第一请求通过第一服务器的第一地址发送、且用于获取与第一客户端请求访问的第一域名对应的目标地址,第一服务器用于解析出与第一域名对应的目标地址,第一客户端和第二客户端安装在同一终端上;在第一请求为合法请求的情况下,解析出与第一域名对应的目标地址,并返回目标地址给第一客户端。

根据本发明实施例的另一方面,还提供了一种域名的解析装置,包括:第一获取单元,用于获取到第一客户端请求访问的第一域名;第二获取单元,用于获取第一服务器的第一地址,其中,第一服务器用于解析出与第一域名对应的目标地址,第一地址由第二客户端配置,第一客户端和第二客户端安装在同一终端上;发送单元,用于通过第一服务器的第一地址向第一服务器发送第一请求,其中,第一请求用于获取与第一客户端请求访问的第一域名对应的目标地址;访问单元,用于在获取到第一服务器返回的目标地址的情况下,通过第一客户端访问目标地址所指向的服务器。

根据本发明实施例的另一方面,还提供了一种域名的解析装置,包括:接收单元,用于接收到第一请求,其中,第一地址由第二客户端配置,第一请求通过第一服务器的第一地址发送、且用于获取与第一客户端请求访问的第一域名对应的目标地址,第一服务器用于解析出与第一域名对应的目标地址,第一客户端和第二客户端安装在同一终端上;解析单元,用于在第一请求为合法请求的情况下,解析出与第一域名对应的目标地址,并返回目标地址给第一客户端。

根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。

根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。

在本发明实施例中,通过第一服务器的第一地址向第一服务器发送第一请求,第一地址由第二客户端配置,第一请求用于获取与第一客户端请求访问的第一域名对应的目标地址,第一服务器用于解析出与第一域名对应的目标地址,第一客户端和第二客户端安装在同一终端上;在获取到第一服务器返回的目标地址的情况下,通过第一客户端访问目标地址所指向的服务器,通过可信且可控的第一服务器来提供DNS解析服务,而不是通过不可控的第三方服务器来提供DNS解析服务,可以解决相关技术中DNS劫持造成的网络安全性较低的技术问题,进而达到了提高网络安全的技术效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的域名的解析方法的硬件环境的示意图;

图2是根据本发明实施例的一种可选的域名的解析方法的流程图;

图3是根据本发明实施例的一种可选的域名的解析方法的流程图;

图4是根据本发明实施例的可选的域名的解析方法的流程图;

图5是根据本发明实施例的可选的域名的解析方法的流程图;

图6是根据本发明实施例的可选的域名的解析方法的流程图;

图7是根据本发明实施例的可选的域名的解析方法的流程图;

图8是根据本发明实施例的可选的域名的解析方法的流程图;

图9是根据本发明实施例的一种可选的域名的解析装置的示意图;

图10是根据本发明实施例的一种可选的域名的解析装置的示意图;以及

图11是根据本发明实施例的一种终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

网际协议地址IP地址:(英语全称为Internet Protocol Address),是分配给网络上使用网际协议的设备的数字标签,常见的IP地址分为IPv4与IPv6两大类。

根据本发明实施例的一方面,提供了一种域名的解析方法的方法实施例。

可选地,在本实施例中,上述域名的解析方法可以应用于如图1所示的由第一服务器101和终端103所构成的硬件环境中。如图1所示,第一服务器101通过网络与终端103进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端103并不限定于PC、手机、平板电脑等。本发明实施例的域名的解析方法可以由第一服务器101来执行,也可以由终端103来执行,还可以是由第一服务器101和终端103共同执行。其中,终端103执行本发明实施例的域名的解析方法也可以是由安装在其上的客户端来执行。

步骤S102,终端103向第一服务器101发送第一请求,以请求得到第一域名的地址。

步骤S104,在第一请求为合法请求的情况下,第一服务器解析出与第一域名对应的目标地址。

步骤S106,返回目标地址给第一客户端。

步骤S108,第一客户端访问目标地址所指向的第四服务器105

而相关技术中进行DNS解析的步骤如下:

步骤S110,终端103向第三服务器107发送第一请求。

步骤S112,返回解析得到的与第一域名对应的目标地址。

针对上述方案,下面分别从终端侧和服务器侧进行说明:

图2是根据本发明实施例的一种可选的域名的解析方法的流程图,该方法可应用于终端的客户端上,如图2所示,该方法可以包括以下步骤:

步骤S202,获取到第一客户端请求访问的第一域名。

上述的第一客户端可以为WEB(World Wide Web)应用的客户端,或为混合模式移动应用Hybrid App(是指介于WEB应用、本地应用native-app这两者之间的应用)的客户端,其内置了WEB功能。

步骤S204,获取第一服务器的第一地址,第一服务器用于解析出与第一域名对应的目标地址,第一地址由第二客户端配置,第一客户端和第二客户端安装在同一终端上。

步骤S206,通过第一服务器的第一地址向第一服务器发送第一请求,第一请求用于获取与第一客户端请求访问的第一域名对应的目标地址。

发送第一请求的方案包括以下三种:

1)第一客户端和第二客户端为同一客户端,换言之,本申请的“防劫持”方案集成在具体客户端上,且“防劫持”方案仅对该客户端奏效,客户端预先知晓第一服务器的地址,发送第一请求时,第一客户端直接在第一请求中携带第一地址、且按照该第一地址发送给第一服务器;

在另外两种方案中,第一客户端和第二客户端为不同客户端,第二客户端为提供本申请的“防劫持”方案的客户端,能够为该终端上的一个或多个应用提供“防劫持”服务,用户可在第二客户端中配置白名单,白名单中应用即可使用该功能的应用,包括第一客户端。

2)第一客户端发送第一请求时,向第三服务器107发送的第一请求被第二客户端拦截,由第二客户端在第一请求中携带第一地址、且按照该第一地址发送给第一服务器,而不是第三服务器。

3)第一客户端利用第二客户端提供的接口获取第二客户端配置的第一服务器的第一地址,第一客户端发送第一请求时,直接在第一请求中携带第一地址、且按照该第一地址发送给第一服务器。

步骤S208,在获取到第一服务器返回的目标地址的情况下,通过第一客户端访问目标地址所指向的服务器。

在相关技术中,DNS解析是逐层解析,如先在本地解析,未解析到则在区域DNS服务器处解析,若仍然未解析成功则到顶级DNS服务器处进行解析。换言之,对于本地终端而言,其并不知晓在哪一层能够解析成功,客户端就更加不知晓,在客户端请求访问第一域名时,是终端底层系统发送第一请求(而不是客户端),且终端并不会明确指示发送到哪个服务器,终端更加不会在第一请求中携带服务器的地址,是路由默认先发送到本地进行解析,本地未解析成功,则发送至本地服务器的上一级DNS服务器进行解析。

终端发送的第一请求可能被劫持、甚至被丢弃,即使有返回结果也并不知晓返回结果的正确性。

而在本申请技术方案中,第一服务器为专用于为上述的第一客户端和第二客户端提供域名解析服务的服务器,不同于现有技术中通过第三方服务器来提供解析,第一服务器为可信的安全DNS服务器,客户端通过绑定的第一服务器来进行解析,相当于从源头上杜绝了DNS被劫持,从而可以解决现有技术中DNS解析请求在转发过程中被劫持的问题。

通过上述步骤S202至步骤S208,通过第一服务器的第一地址向第一服务器发送第一请求,第一地址由第二客户端配置,第一请求用于获取与第一客户端请求访问的第一域名对应的目标地址,第一服务器用于解析出与第一域名对应的目标地址,第一客户端和第二客户端安装在同一终端上;在获取到第一服务器返回的目标地址的情况下,通过第一客户端访问目标地址所指向的服务器,通过可信且可控的第一服务器来提供DNS解析服务,而不是通过不可控的第三方服务器来提供DNS解析服务,可以解决相关技术中DNS劫持造成的网络安全性较低的技术问题,进而达到了提高网络安全的技术效果。

在步骤S206提供的技术方案中,通过第一服务器的第一地址向第一服务器发送第一请求。

如前述,发送第一请求的方案包括三种,下面分别进行说明:

(1)第一种方案:第一客户端和第二客户端为同一客户端

可选地,步骤S206提供的技术方案可包括子步骤:

步骤S2062,第一客户端生成第一请求,第一请求至少包括第一客户端配置的第一域名和第一地址。

其中一种实施方式是第一客户端生成仅包括第一客户端配置的第一域名和第一地址的第一请求,另一种实施方式是,第一客户端生成包括第一域名、第一地址以及第一质量信息的第一请求,第一质量信息用于表示第二地址所指示的服务器对第一客户端提供服务时的服务质量。

例如,第一客户端前一次访问的域名为第一域名,对于第一服务器返回的多个地址,第一客户端将所使用过的地址的响应速度携带于质量信息中反馈给第一服务器,以便于第一服务器进行优化。

步骤S2064,第一客户端通过超文本传输协议向第一服务器发送第一请求。

客户端将第一域名、第一客户端的时间戳以及目标密钥组成一个字符串,并根据预置方案(如预置的验证算法)生成与该字符串对应的第一验证信息,预置方案为第一客户端与第一服务器约定的生成验证信息的方案,换言之,服务器和第一客户端均使用该预置方案生成验证信息;

在生成第一验证信息之后,第一客户端将第一请求、第一客户端的时间戳以及第一验证信息(sign)作为一个完整数据包,通过超文本传输协议HTTP发送给第一服务器。

HTTP协议中交互的数据是明文的,如果被截获,可能会存在泄密的风险,因此可以对内容也加密,同时HTTP也可能会出现劫持,本文中使用了校验方式,可以规避被破译,因此可以提高安全性,可以使用HTTPS协议代替HTTP协议提高安全性。协议中计算sign的key是提前配置的,可以优化为动态更新的key服务,同时要保证key在两端更新时的过渡期。

需要说明的是,不同于现有技术中DNS请求通过UDP实现,若通过HTTP实现,与UDP包不同,不易被拦截;且在数据包中携带有验证信息,便于客户端和服务器对数据包的合法性进行验证,提高了数据传输的安全性。

可选地,上述的目标密钥为第一客户端与第一服务器约定的密钥,约定的方式可以是该目标密钥为固定密钥,第一客户端和第一服务器之间的数据包均携带该固定密钥,如果为携带则认为数据包不可信;约定的方式还可以是第一客户端和第一服务器共享相同的密钥生成算法,每次生成的密钥不同,这样,即使数据包中的密钥被盗取了也没用,因为下一个数据包中的密钥会随时变更,且变更方式(密钥生成算法)仅第一客户端和第一服务器知晓。

(2)第二种方案

第一客户端和第二客户端为不同客户端,具体实现步骤如下:

步骤S2066,第二客户端截取第一客户端向第二服务器发送的第一请求;

步骤S2068,第二客户端将配置的第一地址携带于第一请求中发送给第一服务器,第二客户端用于获取安装在终端上的客户端的请求,并将第一地址携带于获取的请求中发送至第一服务器。

发送第一请求时使用的数据包具体的生成方式、加密方式与上述第一种方案类似,区别仅在于是第二客户端去执行这些操作,在此不再赘述。

(3)第三种方案

第三种方案与第二种方案的区别在于,是第一客户端通过第二客户端提供的数据接口从第二客户端获取第一服务器的第一地址。第一客户端发送第一请求时使用的数据包具体的生成方式、加密方式与上述第一种方案相同,在此不再赘述。

对于上述的第一地址,可以是客户端应用开发时就已经预埋在应用中;也可是客户端按照与第一服务器约定来动态获取或更新的第一地址。

在步骤S208提供的技术方案中,在获取到第一服务器返回的目标地址的情况下,通过第一客户端访问目标地址所指向的服务器。具体的实现方式至少可以包括以下两种:

(1)方案一

可选地,目标地址包括多个地址,在通过第一客户端访问目标地址所指向的服务器时,可以通过如下子步骤实现:

步骤S2082,第一客户端对多个地址的响应速度进行探测,并将探测到的多个地址所指示的服务器的服务质量记录在第二质量信息中。

上述的服务质量除了是对探测请求的反馈速度外,还可是首包时间、握手耗时,数据包的平均响应时间等。

可选地,可以分别为上述各个维度的质量参数分配一个权重,以根据权重计算出的得分作为服务质量ki表示为第i个质量参数qi分配的权重,n为质量参数的数量,质量参数即测得的反馈速度、首包时间、握手耗时、平均响应时间等。

步骤S2084,第一客户端访问多个地址中响应速度最快的地址所指向的服务器。

(2)方案二

可选地,目标地址包括多个地址,服务器预先对多个地址按照探测到的响应速度从高到低配置有优先级,响应速度越高对应的优先级越高,在通过第一客户端访问目标地址所指向的服务器时,可以通过如下子步骤实现:

步骤S2086,第一客户端访问多个地址中的第三地址所指向的服务器,第三地址为多个地址里面未被访问过的地址中优先级最高的地址。例如,初次访问的是优先级最高的地址,第二次访问的是优先级第二高的地址,以此类推。

步骤S2088,在第一客户端访问第三地址所指向的服务器失败的情况下,第一客户端访问多个地址中的第四地址所指向的服务器,第四地址是多个地址中未被访问过的且优先级与第三地址最接近的地址;如访问失败时使用的是优先级第二高的地址,那么本次则使用优先级第三高的地址进行访问。

在完成访问的情况下,将多个地址中被访问过的地址所指示的服务器的服务质量记录在第二质量信息中。

图3是根据本发明实施例的一种可选的域名的解析方法的流程图,该方法可应用于终端的服务器上,如图3所示,该方法可以包括以下步骤:

步骤S302,服务器接收到第一请求,第一请求通过第一服务器的第一地址发送、且用于获取与第一客户端请求访问的第一域名对应的目标地址,第一地址由第二客户端配置,第一服务器用于解析出与第一域名对应的目标地址,第一客户端和第二客户端安装在同一终端上。

可选地,在步骤S302中,第一客户端和第二客户端可为同一客户端,接收到第一请求可包括:接收到第一客户端通过超文本传输协议发送的第一请求,第一请求至少包括第一客户端配置的第一域名和第一地址。

步骤S304,在第一请求为合法请求的情况下,解析出与第一域名对应的目标地址,并返回目标地址给第一客户端。

可选地,第一请求被携带于数据包发送给服务器中,可以通过如下步骤判断第一请求是否为合法请求:

预设条件组包括:数据包中的密钥为第一客户端与第一服务器约定的目标密钥;数据包中的时间戳在有效时间范围(即从时间戳开始的一个固定时长的时间段,如之后的30秒、1分钟、5分钟等)内;数据包中的第一验证信息与第二验证信息匹配,第二验证信息为第一服务器根据预置方案生成的且与第一域名、第一客户端的时间戳以及数据包中的密钥对应的验证信息。

在第一请求满足预设条件组中的每一项条件的情况下,确定第一请求为合法请求;

在第一请求不满足预设条件组中的至少一项条件的情况下,确定第一请求不为合法请求。

可选地,在接收到第一请求之后,可以采用如下方式进行更新:

步骤S11,服务器获取第一请求中的第一质量信息,第一质量信息用于表示第一客户端之前使用第二地址对第二域名进行访问时的响应速度;

步骤S12,根据数据库中记录的第二地址的响应速度和第一质量信息反馈的响应速度对数据库中第二地址的响应速度进行更新,例如计算二者的平均速度;

步骤S13,按照响应速度对数据库中与第二域名对应的地址的优先级进行更新,如响应速度越高则优先级越高。

在本申请的技术方案中,使用基于HTTP协议的域名解析服务代替现有的DNS服务,使用了简单易懂的方案,解决了HTTP劫持,同时利用客户端可收集的数据,优化后台域名解析服务的选取策略。

作为一种可选的实施例,下面结合具体的实施方式详述本申请的技术方案:

随着互联网的发展,互联网应用在越来越广的行业中,越来越多的线下服务和操作,可以借助互联网在线上完成,而DNS作为互联网的基础服务之一,几乎所有的应用都会使用到,但是一旦发生了DNS劫持,会对于服务和应用造成不可预期的问题。

申请人认识到,解决DHS劫持可从以下两个方向出发,其一是检测DNS劫持,其二是配置指定DNS服务器(自建DNS服务或客户端),如果自建DNS服务,还需要使用原有的UDP的DNS协议,还是有可能出现localDNS的劫持,在本申请的技术方案中,可基于HTTP实现等同于现有的DNS功能的代替服务,从而规避DNS劫持,使用HTTP协议实现DNS服务,HTTP协议可以尽量减少可能出现的劫持,可充分利用客户端的统计功能优化自身的服务能力。核心点如下:

1)使用HTTP协议,实现从服务端获取对应域名的IP地址及其过期时间;

2)在HTTP传输协议加入灵活的私有加密协议,以此解决HTTP劫持;

3)服务器端根据客户端IP所在区域返回最优IP;

4)客户端在每次域名解析时,同时带上前一次IP使用情况,用以优化之后客户端最优域名解析IP。

在产品侧,用户访问服务器过程如图4所示:

步骤S402,用户在终端上输入某个网址(如“www.tencent.com”);

步骤S404,终端将上述网址通过网络(局域网或互联网)传输给域名解析服务器(即第一服务器);

步骤S406,域名解析服务器对网址的域名进行解析,并结合终端的源IP返回一个较优的IP地址(对应上述域名),如B地的服务器的IP地址(即目标地址)。

域名服务可以将一组服务器对外封装成一个域名服务。例如用户现在想去超市,用就问域名解析服务“超市”,服务告诉用户离他最近的超市,但是用户并不需要知道到底有多少超市。具体如图5所示:

步骤S502,用户告知域名解析服务器的服务器想要去“超市”(即某个网址域名);

步骤S504,服务器提供域名解析服务,搜索各个“超市”(对应于各地与该域名对应的服务器的IP地址),发现超市507距离(对应于最优的IP地址)用户最近,则告诉用户超市507的地址;

步骤S506,用户根据该地址直接去往超市507(而不是其余超市,如超市501、超市503或超市505)。

用户访问网络的过程与上述过程类似,用户或者应用在访问后端服务(访问网站等)时,都是使用域名访问的方式,这时就是需要域名解析服务来提供域名到具体提供服务的服务器IP地址,上述的“超市”相当于提供用户请求的域名的服务的服务器。

在技术侧,DNS域名解析本身是树状结构,一层层递归查找,解析整个域名。本申请中仅以最简单的方式,一个域名对应的IP列表为例进行说明。

在本申请的域名解析过程中,客户端的流程如图6所示:

步骤S602,客户端预埋HTTP域名解析服务器(第一服务器)的IP地址。

步骤S604,判断本地缓存的IP列表是否过期,若是则执行步骤S606,否则执行步骤S614。

步骤S606,统计前一次IP列表的使用情况。

步骤S608,发起域名解析请求。

当用户发起域名解析请求时,将域名请求数据(json结构),如{{"domain":

"www.test.com","cip":"1.1.1.1","status":[{"ip":"2.2.2.2","speed":"500"},{"ip":"3.2.2.2","speed":"600"}]},作为post请求数据,发送的服务器端的域名解析服务。

步骤S610,是否成功收到返回,若是则执行步骤S614,否则执行步骤S612。

步骤S612,做异常处理。

步骤S614,按照IP列表访问相应域名。

服务器端的流程如图7所示:

步骤S702,接收到客户端请求。

步骤S704,判断请求是否合法,若是则执行步骤S706,否则执行步骤S722。

解析客户端请求,校验请求合法性,如果有统计数据,写入数据库。

步骤S706,利用客户端的源IP进行运营商定位和区域定位。

步骤S708,判断是否定位成功,若是则执行步骤S712,否则执行步骤S710。

步骤S710,使用默认IP列表。

在服务器端的配置系统中,配置域名所对应的IP地址列表,用于初始化映射。

步骤S712,判断是否上报质量数据,若是则执行步骤S714,否则执行步骤S716。

步骤S714,更新客户端使用情况数据。

步骤S716,查询该域名最优的IP列表。

步骤S718,判断是否查询成功,若是则执行步骤S720,否则执行步骤S722。

对客户端IP进行运营商和区域定位,返回对应域名的最优IP地址列表,如:{"iplist":["1.1.1.1","2.2.2.2"],"ttl":10},ttl为过期时间或者缓存时间。

步骤S720,返回查找到的IP列表和缓存时间。

域名所对应的服务器IP地址的负载均衡,可以在客户端实现或者服务器在返回IP地址列表时,实现负载均衡。

步骤S722,结束。

实现本申请的技术方案的时序图如图8所示:

步骤S802,用户801访问网站,如通过网页客户端、应用等访问网站。

步骤S804,客户端或所在的终端803检测该网站域名是否有对应的IP列表缓存。

步骤S806,若有对应的IP列表缓存,则检测该IP列表的缓存时间是否过期。

步骤S808,若缓存时间过期或该网站域名无对应的IP列表缓存,则向域名解析服务器805发起域名解析请求。

步骤S810,域名解析服务器判断该请求是否合法。

步骤S812,若合法则根据客户端的位置信息在数据库807查询域名对应的IP列表数据。

步骤S814,返回查询到的IP列表和对应的缓存时间TTL给客户端。

步骤S816,客户端利用收到的IP地址向数据服务器809发起数据请求。

步骤S818,数据服务器返回客户端所请求的数据。

请求的签名参数sgin的计算方法如下:

步骤S21,拼装post数据。

{{"domain":"www.test.com","cip":"1.1.1.1","status":[{"ip":"2.2.2.2","speed":"500"},{"ip":"3.2.2.2","speed":"600"}]}。

步骤S22,获取当前时间戳,如“time=1511404795”。

步骤S23,获取key,客户端可和服务器端约定统一的密钥,如key=123。

步骤S24,计算md5。客户端在发起请求的时候,计算post请求的数据+密钥key+当前时间戳的MD5值作为校验基础的sign。

对“{{"domain":"www.test.com","cip":"1.1.1.1","status":[{"ip":"2.2.2.2","speed":"500"},{"ip":"3.2.2.2","speed":"600"}]}+123+1511404795”计算其md5值,如计算出为a3b3af638e91b330c6045a916f745ca1。

步骤S25,将sign作为get参数,在发送请求时,get参数添加sign=“a3b3af638e91b330c6045a916f745ca1-1511404795”。

服务器端在收到请求时,从sign中获取时间戳“1511404795”,与当前时间比较,判断是否sign已经过期,如果已经过期,直接返回403,如果是有效的时间戳,获取post数据,使用同样的计算规则,计算MD5值,判断是否与请求中的sign一致,如果不一致,返回403,否则查询数据库,正常返回需要的IP列表及有效时间。

根据回收到服务质量数据反馈,按照服务节点的速度,定时计算不同运营商不同区域的最优IP。主要流程如下:

步骤S31,从客户端获取上报质量数据。

步骤S32,判断是否获取成功。

步骤S33,若是则按照运营商区域维度,计算各IP的平均速度。

步骤S34,对于同一运营商区域维度内的IP,按照速度进行排序。

本方案代替了现有的DNS解析服务,从而有效的规避了DNS的易劫持性,而具体协议中的加密协议,减少了HTTP的劫持影响,而且HTTP协议简单,易理解,根据不同的需求可以在协议中加入灵活的控制字段。同时,客户端上报的数据,可以作为优化域名解析服务的数据。

本方案中客户端和服务器端都涉及到了相关的开发,整体方案可以进行封装,对外暴露接口,作为使用方无感知,方便推广更多的应用场景。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

根据本发明实施例的另一个方面,还提供了一种用于实施上述域名的解析方法的域名的解析装置。图9是根据本发明实施例的一种可选的域名的解析装置的示意图,如图9所示,该装置可以包括:第一获取单元901、第二获取单元903、发送单元905和访问单元907。

第一获取单元901,用于获取到第一客户端请求访问的第一域名。

第二获取单元903,用于获取第一服务器的第一地址,其中,第一服务器用于解析出与第一域名对应的目标地址,第一地址由第二客户端配置,第一客户端和第二客户端安装在同一终端上。

发送单元905,用于通过第一服务器的第一地址向第一服务器发送第一请求,其中,第一请求用于获取与第一客户端请求访问的第一域名对应的目标地址。

访问单元907,用于在获取到第一服务器返回的目标地址的情况下,通过第一客户端访问目标地址所指向的服务器。

需要说明的是,该实施例中的第一获取单元901可以用于执行本申请实施例中的步骤S202,该实施例中的第二获取单元903可以用于执行本申请实施例中的步骤S204,该实施例中的发送单元905可以用于执行本申请实施例中的步骤S206,该实施例中的访问单元907可以用于执行本申请实施例中的步骤S208。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,通过第一服务器的第一地址向第一服务器发送第一请求,第一地址由第二客户端配置,第一请求用于获取与第一客户端请求访问的第一域名对应的目标地址,第一服务器用于解析出与第一域名对应的目标地址,第一客户端和第二客户端安装在同一终端上;在获取到第一服务器返回的目标地址的情况下,通过第一客户端访问目标地址所指向的服务器,通过可信且可控的第一服务器来提供DNS解析服务,而不是通过不可控的第三方服务器来提供DNS解析服务,可以解决相关技术中DNS劫持造成的网络安全性较低的技术问题,进而达到了提高网络安全的技术效果。

可选地,上述的第一客户端和第二客户端可为同一客户端,上述的发送单元可以包括:生成模块,用于按照第一客户端的指示生成第一请求,其中,第一请求至少包括第一客户端配置的第一域名和第一地址;第一发送模块,用于通过超文本传输协议向第一服务器发送第一请求。

上述的生成模块还可用于按照第一客户端的指示生成包括第一域名、第一地址以及第一质量信息的第一请求,其中,第一质量信息用于表示第二地址所指示的服务器对第一客户端提供服务时的服务质量。

上述的第一发送模块还可用于:根据预置方案生成与第一域名、第一客户端的时间戳以及目标密钥对应的第一验证信息,其中,预置方案为第一客户端与第一服务器约定的生成验证信息的方案,目标密钥为第一客户端与第一服务器约定的密钥;将第一请求、第一客户端的时间戳以及第一验证信息作为一个数据包,通过超文本传输协议发送给第一服务器。

上述的发送单元还可以包括:截取模块,用于截取第一客户端向第二服务器发送的第一请求;第二发送模块,用于将第二客户端配置的第一地址携带于第一请求中发送给第一服务器,其中,第二客户端用于获取安装在终端上的客户端的请求,并将第一地址携带于获取的请求中发送至第一服务器。

可选地,目标地址包括多个地址,其中,上述访问单元可包括:探测模块,用于通过第一客户端对多个地址所指示的服务器的服务质量进行探测,并将探测到的多个地址所指示的服务器的服务质量记录在第二质量信息中;第一访问模块,用于通过第一客户端访问多个地址中响应速度最快的地址所指向的服务器。

可选地,访问单元还可包括:第二访问模块,用于通过第一客户端访问多个地址中的第三地址所指向的服务器,其中,第三地址为多个地址中未被访问过、且优先级最高的地址,多个地址按照第一服务器探测到的响应速度从高到低配置有优先级;第三访问模块,用于在对第三地址所指向的服务器的访问失败的情况下,通过第一客户端访问多个地址中的第四地址所指向的服务器,其中,第四地址是多个地址中未被访问过的且优先级与第三地址最接近的地址;记录模块,用于在完成访问的情况下,将多个地址中被访问过的地址所指示的服务器的服务质量记录在第二质量信息中。

根据本发明实施例的另一个方面,还提供了一种用于实施上述域名的解析方法的域名的解析装置。图10是根据本发明实施例的一种可选的域名的解析装置的示意图,如图10所示,该装置可以包括:接收单元1001和解析单元1003。

接收单元1001,用于接收到第一请求,其中,第一地址由第二客户端配置,第一请求通过第一服务器的第一地址发送、且用于获取与第一客户端请求访问的第一域名对应的目标地址,第一服务器用于解析出与第一域名对应的目标地址,第一客户端和第二客户端安装在同一终端上。

上述的第一客户端和第二客户端可为同一客户端,接收单元还可用于接收到通过超文本传输协议发送的第一请求,其中,第一请求至少包括第一客户端配置的第一域名和第一地址。

解析单元1003,用于在第一请求为合法请求的情况下,解析出与第一域名对应的目标地址,并返回目标地址给第一客户端。

上述第一请求被携带于数据包中,解析单元可包括判断模块,用于:在第一请求满足预设条件组中的每一项条件的情况下,确定第一请求为合法请求;在第一请求不满足预设条件组中的至少一项条件的情况下,确定第一请求不为合法请求。

上述预设条件组包括:数据包中的密钥为第一客户端与第一服务器约定的目标密钥;数据包中的时间戳在有效时间范围内;数据包中的第一验证信息与第二验证信息匹配,第二验证信息为第一服务器根据预置方案生成的且与第一域名、第一客户端的时间戳以及数据包中的密钥对应的验证信息。

可选地,上述的装置还可包括:获取单元,用于获取第一请求中的第一质量信息,其中,第一质量信息用于表示第二地址所指示的服务器对第一客户端提供服务时的服务质量;更新单元,用于根据数据库中记录的第二地址的响应速度和第一质量信息反馈的响应速度对数据库中第二地址的响应速度进行更新,并按照响应速度对数据库中与第二域名对应的地址的优先级进行更新。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本发明实施例的另一个方面,还提供了一种用于实施上述域名的解析方法的服务器或终端。

图11是根据本发明实施例的一种终端的结构框图,如图11所示,该终端可以包括:一个或多个(图11中仅示出一个)处理器1101、存储器1103、以及传输装置1105(如上述实施例中的发送装置),如图11所示,该终端还可以包括输入输出设备1107。

其中,存储器1103可用于存储软件程序以及模块,如本发明实施例中的域名的解析方法和装置对应的程序指令/模块,处理器1101通过运行存储在存储器1103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的域名的解析方法。存储器1103可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1103可进一步包括相对于处理器1101远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置1105用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1105包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1105为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器1103用于存储应用程序。

处理器1101可以通过传输装置1105调用存储器1103存储的应用程序,以执行下述步骤:

获取到第一客户端请求访问的第一域名;

获取第一服务器的第一地址,其中,第一服务器用于解析出与第一域名对应的目标地址,第一地址由第二客户端配置,第一客户端和第二客户端安装在同一终端上;

通过第一服务器的第一地址向第一服务器发送第一请求,其中,第一请求用于获取与第一客户端请求访问的第一域名对应的目标地址;

在获取到第一服务器返回的目标地址的情况下,通过第一客户端访问目标地址所指向的服务器。

处理器1101还用于执行下述步骤:

接收到第一请求,其中,第一地址由第二客户端配置,第一请求通过第一服务器的第一地址发送、且用于获取与第一客户端请求访问的第一域名对应的目标地址,第一服务器用于解析出与第一域名对应的目标地址,第一客户端和第二客户端安装在同一终端上;

在第一请求为合法请求的情况下,解析出与第一域名对应的目标地址,并返回目标地址给第一客户端。

采用本发明实施例,通过第一服务器的第一地址向第一服务器发送第一请求,第一地址由第二客户端配置,第一请求用于获取与第一客户端请求访问的第一域名对应的目标地址,第一服务器用于解析出与第一域名对应的目标地址,第一客户端和第二客户端安装在同一终端上;在获取到第一服务器返回的目标地址的情况下,通过第一客户端访问目标地址所指向的服务器,通过可信且可控的第一服务器来提供DNS解析服务,而不是通过不可控的第三方服务器来提供DNS解析服务,可以解决相关技术中DNS劫持造成的网络安全性较低的技术问题,进而达到了提高网络安全的技术效果。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图11所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,终端还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行域名的解析方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

S31,获取到第一客户端请求访问的第一域名;

S32,获取第一服务器的第一地址,其中,第一服务器用于解析出与第一域名对应的目标地址,第一地址由第二客户端配置,第一客户端和第二客户端安装在同一终端上;

S33,通过第一服务器的第一地址向第一服务器发送第一请求,其中,第一请求用于获取与第一客户端请求访问的第一域名对应的目标地址;

S34,在获取到第一服务器返回的目标地址的情况下,通过第一客户端访问目标地址所指向的服务器。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

S41,接收到第一请求,其中,第一地址由第二客户端配置,第一请求通过第一服务器的第一地址发送、且用于获取与第一客户端请求访问的第一域名对应的目标地址,第一服务器用于解析出与第一域名对应的目标地址,第一客户端和第二客户端安装在同一终端上;

S42,在第一请求为合法请求的情况下,解析出与第一域名对应的目标地址,并返回目标地址给第一客户端。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1