CN115706722A - 域名请求方法、装置、存储介质及电子设备 - Google Patents
域名请求方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115706722A CN115706722A CN202110930338.7A CN202110930338A CN115706722A CN 115706722 A CN115706722 A CN 115706722A CN 202110930338 A CN202110930338 A CN 202110930338A CN 115706722 A CN115706722 A CN 115706722A
- Authority
- CN
- China
- Prior art keywords
- domain name
- address
- list
- request
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种域名请求方法及相关设备,涉及网络通信技术领域。该方法包括:获取网络环境信息;发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址;若查询失败,则通过HttpDNS域名解析服务器解析域名,以得到第一IP地址。本发明用于域名请求,主要为解决目前在进行域名请求时,现有技术未考虑到不同的网络环境对域名解析的影响,进而在某些网络环境下进行域名请求时,会出现无法解析或解析速度慢的情况,影响域名解析的稳定性,而导致域名请求无法响应或响应慢的问题。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种域名请求方法、装置、存储介质及电子设备。
背景技术
虽然互联网上的节点都可以用IP地址作为唯一标识,并通过IP地址进行访问,但32位的IP地址太长、太难记,因此人们发明了域名,域名可将一个IP地址关联到一组有意义的字符上去,DNS(Domain Name System,域名系统)作为将域名和IP地址相互映射的一个分布式数据库,能够将域名对应到真实的计算机能够识别的IP地址,以便计算机能够进一步通信,传递网址和内容等。
目前,通常有两种DNS的解析方式,一是通过LocalDNS进行解析,就是指通过ISP(Internet Service Provider,互联网服务提供商)提供的域名解析服务,基于UDP协议与DNS服务器交互进行解析,二是通过HttpDNS进行解析,就是指基于HTTP协议与DNS服务器交互进行解析,现有技术进行域名解析时,并未考虑到不同的网络环境对域名解析的影响,进而在某些网络环境下进行域名请求时,会出现无法解析或解析速度慢的情况,影响域名解析的稳定性,而导致域名请求无法响应或响应慢的问题。
发明内容
鉴于上述问题,本发明提供了一种域名请求方法及相关设备,主要目的在于解决目前在进行域名请求时,现有技术未考虑到不同的网络环境对域名解析的影响,进而在某些网络环境下进行域名请求时,会出现无法解析或解析速度慢的情况,影响域名解析的稳定性,而导致域名请求无法响应或响应慢的问题。
为解决上述技术问题,第一方面,本发明提供了一种域名请求方法,该方法包括:
获取网络环境信息,其中,网络环境信息包括互联网通信协议版本信息;
发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址,其中,域名IP列表用于存储第一IP地址,第一IP地址为与网络环境信息和域名相对应的IP地址,域名为域名请求中的域名信息;
若查询失败,则通过HttpDNS域名解析服务器解析域名,以得到第一IP地址。
可选的,还包括:
若通过HttpDNS域名解析服务器无法解析域名,则通过LocalDNS解析域名,以得到与域名相对应的IP地址。
可选的,发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址的步骤,包括:
发送第一域名请求时,查询本地存储的第一域名IP列表,以得到第一IP地址,其中,第一域名IP列表中的第一IP地址为上次发送第一域名请求时得到的第一IP地址;
发送第二域名请求时,查询本地存储的第二域名IP列表,以得到第一IP地址,其中,第二域名IP列表中的第一IP地址为发送第二域名请求前得到的第一IP地址。
可选的,还包括:
通过第二IP地址,访问HttpDNS网关服务器,以得到第三IP地址和第四IP地址,其中,第二IP地址为预埋的HttpDNS网关服务器的IP地址,第三IP地址与网络环境信息和HttpDNS网关服务器相对应的IP地址,第四IP地址为与网络环境信息和HttpDNS域名解析服务器相对应的IP地址;
将HttpDNS网关服务器下发的第三IP地址存储到网关IP列表,其中,网关IP列表用于存储第三IP地址;
将HttpDNS网关服务器下发的第四IP地址存储到解析IP列表,其中,解析IP列表用于存储第四IP地址。
可选的,通过HttpDNS域名解析服务器解析域名的步骤,包括:
通过第四IP地址访问HttpDNS域名解析服务器;
通过HttpDNS域名解析服务器解析域名。
可选的,还包括:
通过域名IP列表、网关IP列表和解析IP列表中的IP地址的连接情况,对IP地址进行排序。
可选的,还包括:
访问HttpDNS网关服务器时,发送秘钥信息和访问信息,以进行访问校验;
若校验通过,则能够得到第三IP地址和第四IP地址;
若校验未通过,则不能得到第三IP地址和第四IP地址。
为了实现上述目的,根据本发明的第二方面,提供了一种域名请求装置,包括:
获取单元,用于获取网络环境信息,其中,网络环境信息包括互联网通信协议版本信息;
查询单元,用于发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址,其中,域名IP列表用于存储第一IP地址,第一IP地址为与网络环境信息和域名相对应的IP地址,域名为域名请求中的域名信息;
解析单元,用于若查询失败,则通过HttpDNS域名解析服务器解析域名,以得到第一IP地址。
为了实现上述目的,根据本发明的第三方面,提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述第一方面中任一项的域名请求方法的步骤。
为了实现上述目的,根据本发明的第四方面,提供了一种电子设备,电子设备包括至少一个处理器、以及与处理器连接的至少一个存储器;其中,处理器用于调用存储器中的程序指令,执行如第一方面中任一项的域名请求方法的步骤。
借由上述技术方案,本发明提供了一种域名请求方法、装置、存储介质及电子设备,主要目的在于解决目前在进行域名请求时,现有技术未考虑到不同的网络环境对域名解析的影响,进而在某些网络环境下进行域名请求时,会出现无法解析或解析速度慢的情况,影响域名解析的稳定性,而导致域名请求无法响应或响应慢的问题。本发明通过获取网络环境信息,其中,网络环境信息包括互联网通信协议版本信息;发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址,其中,域名IP列表用于存储第一IP地址,第一IP地址为与网络环境信息和域名相对应的IP地址,域名为域名请求中的域名信息;若查询失败,则通过HttpDNS域名解析服务器解析域名,以得到第一IP地址,实现域名请求。在上述方案中,通过获取网络环境信息的操作,节省了服务器资源、保障了域名请求的IP地址的可用性;通过发送域名请求时,查询本地存储的域名IP列表,和若查询失败,则通过HttpDNS域名解析服务器解析域名的操作,使域名请求的响应时间更快。上述方案能够实现根据网络环境信息精准、快速地使用可用的IP地址进行访问,进而解决了目前在进行域名请求时,现有技术未考虑到不同的网络环境对域名解析的影响,进而在某些网络环境下进行域名请求时,会出现无法解析或解析速度慢的情况,影响域名解析的稳定性,而导致域名请求无法响应或响应慢的问题。
附图说明
通过阅读下文示例性实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出示例性实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请实施例一提供的一种域名请求方法的示意性流程图;
图2为本申请实施例二提供的一种域名请求方法的示意性流程图;
图3为本申请实施例三提供的一种域名请求方法的示意性流程图;
图4为本申请实施例四提供的一种域名请求方法的示意性流程图;
图5为本申请实施例五提供的一种域名请求装置的示意性结构框图;
图6为本申请实施例七提供的一种电子设备的示意性结构框图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
实施例一
为了解决目前在进行域名请求时,现有技术未考虑到不同的网络环境对域名解析的影响,进而在某些网络环境下进行域名请求时,会出现无法解析或解析速度慢的情况,影响域名解析的稳定性,而导致域名请求无法响应或响应慢的问题,本申请实施例一提供了一种域名请求方法,如图1所示,该方法可以包括:
步骤101、获取网络环境信息;
其中,网络环境信息包括互联网通信协议版本信息。
具体的,网络环境信息还可以包括HttpDNS客户端连接的运营商信息和当前网络类型(2G网络、3G网络、4G网络、5G网络、WIFI网络等),如果当前网络类型为WIFI网络,则网络环境信息还可以包括当前WIFI网络的SSID(Service Set Identifier,服务集标识符)信息,其中SSID信息包括表示无线接入点的数据链路层的MAC地址的BSSID(Base ServiceSet Identifier,基本服务集标识符),和表示无线网络的名称的ESSID(Extended ServiceSet Identifier,扩展服务集标识符),以便识别当前连接的是哪个WIFI网络,同时也要监控当前网络变化,一旦所连接的网络发生变化,则重新获取并存储网络环境信息;互联网通信协议版本信息包括IPv4(Internet Protocol version 4,互联网通信协议第四版)和IPv6(Internet Protocol version6,互联网通信协议第六版);探测当前网络是同时支持IPv4和IPv6还是只支持IPv4。
需要说明的是,互联网通信协议版本信息会携带到后续全部请求IP地址的步骤,而服务器会依据该互联网通信协议版本信息给HttpDNS客户端下发对应的IP地址;现有技术在进行域名请求时,通常直接进行域名解析,没有考虑到当前网络环境信息对域名解析的影响,而通过步骤101可以得到当前网络环境信息,以便于根据当前网络环境信息进行IP地址的解析和存储,更精准地解析并存储到可用的IP地址,避免了由于HttpDNS客户端当前不支持IPv6时,服务器解析出了IPv6的IP地址,浪费服务器资源,服务器下发了IPv6的IP地址,导致HttpDNS客户端连接不上、域名请求没有响应的问题。
步骤102、发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址;
其中,域名IP列表用于存储第一IP地址,第一IP地址为与网络环境信息和域名相对应的IP地址,域名为域名请求中的域名信息。
具体的,得到第一IP地址,通过该第一IP地址访问本次域名请求对应的域名;当前网络环境信息如果只支持IPv4,那么第一IP地址则全部都是域名对应的IPv4的IP地址。
需要说明的是,现有技术在进行域名请求时,通常直接将域名请求发送至服务器进行域名解析并返回IP地址,通过步骤102可以在进行域名请求时,无需服务器进行域名解析,在本地查找到域名对应的IP地址,使域名请求的响应时间更快。
步骤103、若查询失败,则通过HttpDNS域名解析服务器解析域名,以得到第一IP地址;
具体的,得到第一IP地址,通过该第一IP地址访问本次域名请求对应的域名,并且将该第一IP地址存储到域名IP列表中,以便下次进行同样的域名请求时,跳过服务器解析域名的步骤,直接在本地查找并访问,无需服务器进行域名解析,在本地查找到域名对应的IP地址,使域名请求的响应时间更快。
借由上述技术方案,本实施例一提供了一种域名请求方法,主要目的在于解决目前在进行域名请求时,现有技术未考虑到不同的网络环境对域名解析的影响,进而在某些网络环境下进行域名请求时,会出现无法解析或解析速度慢的情况,影响域名解析的稳定性,而导致域名请求无法响应或响应慢的问题。本申请实施例一通过获取网络环境信息,其中,网络环境信息包括互联网通信协议版本信息;发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址,其中,域名IP列表用于存储第一IP地址,第一IP地址为与网络环境信息和域名相对应的IP地址,域名为域名请求中的域名信息;若查询失败,则通过HttpDNS域名解析服务器解析域名,以得到第一IP地址,实现域名请求。在上述方案中,通过获取网络环境信息的操作,节省了服务器资源、保障了域名请求的IP地址的可用性;通过发送域名请求时,查询本地存储的域名IP列表,和若查询失败,则通过HttpDNS域名解析服务器解析域名的操作,使域名请求的响应时间更快。上述方案能够实现根据网络环境信息精准、快速地使用可用的IP地址进行访问,进而解决了目前在进行域名请求时,现有技术未考虑到不同的网络环境对域名解析的影响,进而在某些网络环境下进行域名请求时,会出现无法解析或解析速度慢的情况,影响域名解析的稳定性,而导致域名请求无法响应或响应慢的问题。
实施例二
为了使本领域技术人员能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员,本申请实施例二在上述实施例一的基础上,对本发明限定的一种域名请求方法做出了进一步的说明,如图2所示,该方法包括:
步骤201、获取网络环境信息;
其中,网络环境信息包括互联网通信协议版本信息。
步骤202、发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址;
其中,域名IP列表用于存储第一IP地址,第一IP地址为与网络环境信息和域名相对应的IP地址,域名为域名请求中的域名信息。
步骤203、若查询失败,则通过HttpDNS域名解析服务器解析域名,以得到第一IP地址。
步骤204、若通过HttpDNS域名解析服务器无法解析域名,则通过LocalDNS解析域名,以得到与域名相对应的IP地址;
具体的,在进行域名请求时,有可能出现查询本地存储的域名IP列表无法找到可用的第一IP地址、通过HttpDNS域名解析服务器解析域名时HttpDNS域名解析服务器无法解析的情况,在这种情况下,则通过LocalDNS解析域名,以得到与域名相对应的IP地址。
需要说明的是,通过步骤203可以避免在上述情况下,无法得到域名对应的IP地址、无法实现域名请求的问题,实现无论在何状况下都能够实现域名请求的技术效果。
借由上述技术方案,本实施例二提供了一种域名请求方法,主要目的在于解决本申请实施例一在特定情况下,有可能出现无法得到域名对应的IP地址。本申请实施例二通过在本申请实施例一的基础上,添加如下步骤:若通过HttpDNS域名解析服务器无法解析域名,则通过LocalDNS解析域名,实现域名请求。在上述方案中,通过若通过HttpDNS域名解析服务器无法解析域名,则通过LocalDNS解析域名的操作,提升了本申请实施例一所实现的域名请求方法的容灾能力,实现无论在何状况下都能够实现域名请求的技术效果。
实施例三
为了使本领域技术人员能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员,本申请实施例三在本申请实施例一的基础上,对本发明限定的一种域名请求方法做出了进一步的说明,如图3所示,该方法包括:
步骤301、获取网络环境信息;
其中,网络环境信息包括互联网通信协议版本信息。
步骤302、发送第一域名请求时,查询本地存储的第一域名IP列表,以得到第一IP地址;
其中,第一域名IP列表中的第一IP地址为上次发送第一域名请求时得到的第一IP地址,第一IP地址为与网络环境信息和域名相对应的IP地址,域名为域名请求中的域名信息。
具体的,第一域名请求为普通域名请求(不会经常访问或非核心域名等);如果是第一次进行与某个域名对应的第一域名请求,则无法在第一域名IP列表中查询到第一IP地址;如果不是第一次进行与这个域名对应的第一域名请求,则能够在第一域名IP列表中查询到第一IP地址。
需要说明的是,通过步骤302可以避免不必要的域名解析和第一IP地址存储的过程,可以在进行域名请求时节省服务器资源、节约本地内存。
步骤303、发送第二域名请求时,查询本地存储的第二域名IP列表,以得到第一IP地址;
其中,第二域名IP列表中的第一IP地址为发送第二域名请求前得到的第一IP地址,第一IP地址为与网络环境信息和域名相对应的IP地址,域名为域名请求中的域名信息。
具体的,第二域名请求为核心域名请求,核心域名请求为针对重点域名的访问请求,例如,可以将搜索引擎首页的域名设定为重点域名,或是将某网站的主页设定为重点域名,当然,本申请实施例对第二域名请求的具体内容不做限定;在发送第二域名请求前,就会解析并存储前述第二域名请求对应的第一IP地址,以便在发送第二域名请求时,直接通过该第一IP地址访问对应的域名。
需要说明的是,步骤303即是针对第二域名请求进行预解析,以便在进行第二域名请求时直接得到对应的第一IP地址,通过步骤303可在进行第二域名请求时无需进行域名解析而直接通过第一IP地址直接访问该第二域名请求对应的域名,以节省进行第二域名请求时的响应时间。
示例性的,在HttpDNS客户端启动时,将需要访问到的一些核心域名设置到预解析域名列表中,将获取到的预解析域名列表中的域名信息,组成一个请求的参数列表,发送到域名解析的请求中,以得到每个域名信息所对应的IP地址列表,和此次域名解析的IP地址列表的有效时间信息,并将上述IP地址列表和有效时间信息按照域名分别存储;
将上述IP地址列表和有效时间信息按照域名分别存储的部分步骤可以由以下代码实现:
Map<string,Item>;
其中,“Struct Item”表示用来存储一个域名对应的IP地址列表的一个名为Item的Struct结构体,“vector<string>ips;”表示上述的IP地址列表信息,“Time out;”表示有效时间信息,“Map<string,Item>;”表示存储每个域名对应的IP地址列表信息的键值对。
需要说明的是,上述代码用于实现将上述IP地址列表和有效时间信息按照域名分别存储的部分步骤。
可选的,步骤303还可以包括:对第二域名IP列表中的第一IP地址进行排序。
具体的,对第二域名IP列表中的每个第一IP地址进行Connect连接,以探测当前第一IP地址是否可用,并对比每个第一IP地址的连接耗时,基于连接耗时进行排序,将连接耗时最短的第一IP地址排到第二域名列表的最前面,将连接耗时最长的第一IP地址排到第二域名列表的最后面。
需要说明的是,通过上述可选的步骤,可以确保并提高针对第二域名请求的处理和响应的速度。
步骤304、若查询失败,则通过HttpDNS域名解析服务器解析域名,以得到第一IP地址。
借由上述技术方案,本实施例三提供了一种域名请求方法,主要目的在于解决目前在进行域名请求时,域名请求无法响应或响应慢的问题,并进一步解决了现有技术中,通常针对所有域名对应的域名请求都在进行请求时都要现进行域名解析,导致在进行核心域名对应的第二域名请求时,响应速度慢的问题。本申请实施例三通过在本申请实施例一的基础上,具体明确了发送域名请求时,查询本地存储的域名IP列表的步骤,进一步提升了域名请求时的响应速度。
实施例四
为了使本领域技术人员能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员,本申请实施例四在本申请实施例一的基础上,对本发明限定的一种域名请求方法做出了进一步的说明,如图4所示,该方法包括:
步骤401、获取网络环境信息;
其中,网络环境信息包括互联网通信协议版本信息。
步骤402、通过第二IP地址,访问HttpDNS网关服务器,以得到第三IP地址和第四IP地址;将HttpDNS网关服务器下发的第三IP地址存储到网关IP列表;将HttpDNS网关服务器下发的第四IP地址存储到解析IP列表;
其中,第二IP地址为预埋的HttpDNS网关服务器的IP地址,第三IP地址与网络环境信息和HttpDNS网关服务器相对应的IP地址,第四IP地址为与网络环境信息和HttpDNS域名解析服务器相对应的IP地址,网关IP列表用于存储第三IP地址,解析IP列表用于存储第四IP地址。
具体的,HttpDNS网关服务器和HttpDNS域名解析服务器都是HttpDNS服务器中的一部分,HttpDNS网关服务器负责处理网关访问,HttpDNS域名解析服务器负责处理域名解析;HttpDNS客户端启动后,通过依次使用预埋在HttpDNS客户端中至少一个第二IP地址,连接HttpDNS网关服务器,没连上则依次连接,直到连接上HttpDNS网关服务器为止,HttpDNS网关服务器会基于前述网络环境信息,依据就近就快原则,下发一批IP地址(包括第三IP地址和第四IP地址),HttpDNS客户端将其中的第三IP地址和第四IP地址存储到本地的网关IP列表和解析IP列表中,其中的第三IP地址用于,下次HttpDNS客户端启动或定时器达到预定时间时,通过网关IP列表中的第三IP地址连接HttpDNS网关服务器,以获取最新的可用的第三IP地址和第四IP地址,更新本地存储的网关IP列表和解析IP列表,如果某个第三IP地址多次连接失败,则从网关IP地址中将其删除;在存储网关IP列表和解析IP列表时,使用网络环境信息作为存储的键,第三IP列表和第四IP列表作为存储的值,保障基于网络环境信息同时存储多份IP列表,在后续读取其中的信息时,可以根据网络环境信息读取对应的IP列表信息,后续进行域名解析时都会使用解析IP列表中的第四IP地址连接HttpDNS域名解析服务器。
需要说明的是,通过IP地址的方式访问HttpDNS网关服务器和HttpDNS域名解析服务器,可以避免直接使用域名访问HttpDNS服务器,避免了域名劫持的发生;第三IP地址可以避免HttpDNS服务器故障或HttpDNS服务器受到DoS攻击(Denial-of-Service Attack,拒绝服务攻击)时,第二IP地址不可用,导致无法访问HttpDNS网关服务器的情况;HttpDNS网关服务器会基于前述网络环境信息,依据就近就快原则下发IP地址,可以保障并提高HttpDNS客户端连接HttpDNS服务器的连接速度;定时器可以确保解析IP列表中的第四IP地址都是最新的、可用的,保障HttpDNS客户端进行域名请求时的连接通畅,例如,可以将定时器设置为三十分钟,那么每隔三十分钟,就会请求获取最新的、可用的第三IP地址和第四IP地址,当然,本领域技术人员可以依据需求设置定时器的时间,本实施例对此不做限定。
可选的,步骤402还可以包括:访问HttpDNS网关服务器时,发送秘钥信息和访问信息,以进行访问校验;若校验通过,则能够得到第三IP地址和第四IP地址;若校验未通过,则不能得到第三IP地址和第四IP地址。
具体的,访问信息可以包括当前访问服务器的接口、参数信息、HttpDNS客户端的版本号、网络环境信息等其中任一个或任几个,秘钥信息和访问信息都用于进行访问校验,只有校验通过才能够得到正确的返回信息,否则会拒绝返回信息。
需要说明的是,由于本实施例使用IP地址直接访问HttpDNS服务器,可能会出现黑客抓包获取到访问信息,导致非正常HttpDNS客户端也能够访问并使用该HttpDNS服务器的功能,而通过上述可选的步骤,能够避免黑客访问并使用HttpDNS服务器的功能,保障访问HttpDNS服务器的安全性。
步骤403、发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址;
其中,域名IP列表用于存储第一IP地址,第一IP地址为与网络环境信息和域名相对应的IP地址,域名为域名请求中的域名信息。
步骤404、若查询失败,则通过第四IP地址访问HttpDNS域名解析服务器,通过HttpDNS域名解析服务器解析域名,以得到第一IP地址。
可选的,本申请实施例4还可以包括:通过域名IP列表、网关IP列表和解析IP列表中的IP地址的连接情况,对IP地址进行排序。
具体的,对于IP列表(包括域名IP列表、网关IP列表和解析IP列表)中的IP地址(包括第一IP地址、第三IP地址和第四IP地址),进行Connect连接,记录连接情况,每个IP地址的连接情况中包括其连接的成功失败情况和其进行连接的连接耗时,按照从短至长的连接耗时将IP地址从前到后进行排序;并可以设置一个定时任务将前述连接情况上报至HttpDNS服务器,例如,定时任务可以设置为每十分钟执行,当然,本领域技术人员可以依据需求设定定时任务的执行间隔时间,本实施例不做限定。
需要说明的是,现有技术的HttpDNS服务器没有一个反馈机制来获取HttpDNS客户端的连接情况,通过上述可选的步骤,可以使HttpDNS客户端可以统计全部HttpDNS客户端的连接情况,对IP地址的可用性进行监控和调整,及时发现并处理有问题的IP地址。
可选的,本申请实施例4还可以包括:IP列表会实时持久化到设备中;HttpDNS客户端启动时,会将持久化到设备中的IP列表读取到HttpDNS客户端的内存缓存中。
其中,设备是指包含HttpDNS客户端的设备,IP列表包括域名IP列表、网关IP列表和解析IP列表。
具体的,可以使用设备中的数据库存储IP列表,例如,数据库可以为SQLite,当然,数据库还可以为MySQL、SQL Server、Oracle、NoSQL等,本领域技术人员可以依据需求进行选择,本实施例对此不作具体限定。
需要说明的是,通过上述可选的步骤将HttpDNS客户端请求到的IP列表信息进行持久化,存储到设备的数据库中,可以保障IP列表信息的有效性、提升HttpDNS客户端的效率并减少HttpDNS服务器的压力;而数据库访问的速度比较慢,通过上述可选的步骤可以通过HttpDNS客户端的内存缓存提升对IP列表的访问速度,进而提升域名请求的响应速度。
示例性的,HttpDNS客户端对外提供的域名解析接口的部分功能可以由以下代码实现:
其中,“Class HttpDNS”表示一个名为“HttpDNS”的类,“string SyncgetIp(string host)”表示一个名为“SyncgetIp”的接口,用于获取域名对应的一个IP地址,“vector<string>getIps(string host)”表示一个名为“getIps”的接口,用于获取域名对应的IP地址列表,其中的“host”表示传入的域名,其中的“string”表示返回字符串类型的IP地址,其中的“vector<string>”表示返回包含字符串类型IP地址的vector容器,“***”表示执行前述步骤403和步骤404的操作的代码。
需要说明的是,上述代码中的“***”还可以包括实现的步骤有:首先对传入的域名进行合法性检测,以确定其是不是一个合法域名,避免了调用者可能将一个IP地址传入上述接口;具体的,首先判断host是不是IP地址形式,如果是IP地址形式,则直接返回该IP地址,如果不是IP地址形式,则进一步检查其是不是一个合法的域名,如果不是合法的域名,则返回空数据,如果是合法的域名,则执行后续的功能。对于SyncgetIp接口的单IP地址的请求,则查询内存缓存,如果其中存在对应的域名的IP地址列表,则从其中取出第一个IP地址并返回;对于getIps接口的多IP地址的请求,则查询内存缓存,如果其中存在对应的域名的IP地址列表,则直接返回该IP地址列表。
借由上述技术方案,本实施例四提供了一种域名请求方法,主要目的在于解决目前在进行域名请求时,域名请求无法响应或响应慢的问题,并进一步解决了现有技术中,域名请求可能会发生域名劫持的问题。本申请实施例四通过在本申请实施例一的基础上,具体明确了通过HttpDNS域名解析服务器解析域名前的准备工作,避免了域名劫持的发生,确保了进行域名请求时的安全性。
实施例五
进一步的,作为对前述方法实施例的实现,本申请实施例五还提供了一种域名请求装置,用于对前述方法实施例进行实现。该装置实施例与前述方法实施例对应,为便于阅读,本域名请求装置实施例五不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本申请实施例五中的装置能够对应实现前述方法实施例中的全部内容。如图5所示,该装置50包括:获取单元501、查询单元502和解析单元503,其中,
获取单元501,用于获取网络环境信息,其中,网络环境信息包括互联网通信协议版本信息;
查询单元502,用于发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址,其中,域名IP列表用于存储第一IP地址,第一IP地址为与网络环境信息和域名相对应的IP地址,域名为域名请求中的域名信息;
解析单元503,用于若查询失败,则通过HttpDNS域名解析服务器解析域名,以得到第一IP地址。
借由上述技术方案,本实施例五提供了一种域名请求装置,主要目的在于解决目前在进行域名请求时,现有技术未考虑到不同的网络环境对域名解析的影响,进而在某些网络环境下进行域名请求时,会出现无法解析或解析速度慢的情况,影响域名解析的稳定性,而导致域名请求无法响应或响应慢的问题。本申请实施例五通过获取网络环境信息,其中,获取单元501用于网络环境信息包括互联网通信协议版本信息;查询单元502用于发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址,其中,域名IP列表用于存储第一IP地址,第一IP地址为与网络环境信息和域名相对应的IP地址,域名为域名请求中的域名信息;解析单元503用于若查询失败,则通过HttpDNS域名解析服务器解析域名,以得到第一IP地址,实现域名请求。在上述方案中,通过获取网络环境信息的操作,节省了服务器资源、保障了域名请求的IP地址的可用性;通过发送域名请求时,查询本地存储的域名IP列表,和若查询失败,则通过HttpDNS域名解析服务器解析域名的操作,使域名请求的响应时间更快。上述方案能够实现根据网络环境信息精准、快速地使用可用的IP地址进行访问,进而解决了目前在进行域名请求时,现有技术未考虑到不同的网络环境对域名解析的影响,进而在某些网络环境下进行域名请求时,会出现无法解析或解析速度慢的情况,影响域名解析的稳定性,而导致域名请求无法响应或响应慢的问题。
实施例六
本申请实施例六提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现以下域名请求方法:
获取网络环境信息,其中,网络环境信息包括互联网通信协议版本信息;
发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址,其中,域名IP列表用于存储第一IP地址,第一IP地址为与网络环境信息和域名相对应的IP地址,域名为域名请求中的域名信息;
若查询失败,则通过HttpDNS域名解析服务器解析域名,以得到第一IP地址。
可选的,还包括:
若通过HttpDNS域名解析服务器无法解析域名,则通过LocalDNS解析域名,以得到与域名相对应的IP地址。
可选的,发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址的步骤,包括:
发送第一域名请求时,查询本地存储的第一域名IP列表,以得到第一IP地址,其中,第一域名IP列表中的第一IP地址为上次发送第一域名请求时得到的第一IP地址;
发送第二域名请求时,查询本地存储的第二域名IP列表,以得到第一IP地址,其中,第二域名IP列表中的第一IP地址为发送第二域名请求前得到的第一IP地址。
可选的,还包括:
通过第二IP地址,访问HttpDNS网关服务器,以得到第三IP地址和第四IP地址,其中,第二IP地址为预埋的HttpDNS网关服务器的IP地址,第三IP地址与网络环境信息和HttpDNS网关服务器相对应的IP地址,第四IP地址为与网络环境信息和HttpDNS域名解析服务器相对应的IP地址;
将HttpDNS网关服务器下发的第三IP地址存储到网关IP列表,其中,网关IP列表用于存储第三IP地址;
将HttpDNS网关服务器下发的第四IP地址存储到解析IP列表,其中,解析IP列表用于存储第四IP地址。
可选的,通过HttpDNS域名解析服务器解析域名的步骤,包括:
通过第四IP地址访问HttpDNS域名解析服务器;
通过HttpDNS域名解析服务器解析域名。
可选的,还包括:
通过域名IP列表、网关IP列表和解析IP列表中的IP地址的连接情况,对IP地址进行排序。
可选的,还包括:
访问HttpDNS网关服务器时,发送秘钥信息和访问信息,以进行访问校验;
若校验通过,则能够得到第三IP地址和第四IP地址;
若校验未通过,则不能得到第三IP地址和第四IP地址。
实施例七
本申请实施例七提供了一种电子设备60,如图6所示,设备包括至少一个处理器601、以及与处理器连接的至少一个存储器602;其中,处理器601用于调用存储器602中的程序指令,以执行实现上述域名请求方法。
借由上述技术方案,本申请实施例提供了一种域名请求方法及相关装置,主要目的在于解决目前在进行域名请求时,现有技术未考虑到不同的网络环境对域名解析的影响,进而在某些网络环境下进行域名请求时,会出现无法解析或解析速度慢的情况,影响域名解析的稳定性,而导致域名请求无法响应或响应慢的问题。本申请实施例一通过获取网络环境信息,其中,网络环境信息包括互联网通信协议版本信息;发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址,其中,域名IP列表用于存储第一IP地址,第一IP地址为与网络环境信息和域名相对应的IP地址,域名为域名请求中的域名信息;若查询失败,则通过HttpDNS域名解析服务器解析域名,以得到第一IP地址,实现域名请求。在上述方案中,通过获取网络环境信息的操作,节省了服务器资源、保障了域名请求的IP地址的可用性;通过发送域名请求时,查询本地存储的域名IP列表,和若查询失败,则通过HttpDNS域名解析服务器解析域名的操作,使域名请求的响应时间更快。上述方案能够实现根据网络环境信息精准、快速地使用可用的IP地址进行访问,进而解决了目前在进行域名请求时,现有技术未考虑到不同的网络环境对域名解析的影响,进而在某些网络环境下进行域名请求时,会出现无法解析或解析速度慢的情况,影响域名解析的稳定性,而导致域名请求无法响应或响应慢的问题。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的;应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合;可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程流程管理设备的处理器以产生一个机器,使得通过计算机或其他可编程流程管理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,电子设备包括一个或多个处理器(CPU)、存储器和总线;电子设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片;存储器是存储介质的示例。
存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储;信息可以是计算机可读指令、数据结构、程序的模块或其他数据;计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息;按照本文中的界定,存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素;在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品;因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式;而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
可以由一种或多种程序设计语言或其组合来编写用于执行本申请实施例操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言;程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行;在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上仅为本申请的实施例而已,并不用于限制本申请;对于本领域技术人员来说,本申请可以有各种更改和变化;凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种域名请求方法,其特征在于,包括:
获取网络环境信息,其中,所述网络环境信息包括互联网通信协议版本信息;
发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址,其中,所述域名IP列表用于存储所述第一IP地址,所述第一IP地址为与所述网络环境信息和域名相对应的IP地址,所述域名为所述域名请求中的域名信息;
若查询失败,则通过HttpDNS域名解析服务器解析所述域名,以得到所述第一IP地址。
2.根据权利要求1所述的方法,其特征在于,还包括:
若通过所述HttpDNS域名解析服务器无法解析所述域名,则通过LocalDNS解析所述域名,以得到与所述域名相对应的IP地址。
3.根据权利要求1所述的方法,其特征在于,所述发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址的步骤,包括:
发送第一域名请求时,查询本地存储的第一域名IP列表,以得到所述第一IP地址,其中,所述第一域名IP列表中的所述第一IP地址为上次发送所述第一域名请求时得到的所述第一IP地址;
发送第二域名请求时,查询本地存储的第二域名IP列表,以得到所述第一IP地址,其中,所述第二域名IP列表中的所述第一IP地址为发送所述第二域名请求前得到的所述第一IP地址。
4.根据权利要求1所述的方法,其特征在于,还包括:
通过第二IP地址,访问HttpDNS网关服务器,以得到第三IP地址和第四IP地址,其中,所述第二IP地址为预埋的所述HttpDNS网关服务器的IP地址,所述第三IP地址与所述网络环境信息和所述HttpDNS网关服务器相对应的IP地址,所述第四IP地址为与所述网络环境信息和所述HttpDNS域名解析服务器相对应的IP地址;
将所述HttpDNS网关服务器下发的所述第三IP地址存储到网关IP列表,其中,所述网关IP列表用于存储所述第三IP地址;
将所述HttpDNS网关服务器下发的所述第四IP地址存储到解析IP列表,其中,所述解析IP列表用于存储所述第四IP地址。
5.根据权利要求4所述的方法,其特征在于,所述通过HttpDNS域名解析服务器解析所述域名的步骤,包括:
通过所述第四IP地址访问所述HttpDNS域名解析服务器;
通过所述HttpDNS域名解析服务器解析所述域名。
6.根据权利要求4所述的方法,其特征在于,还包括:
通过所述域名IP列表、所述网关IP列表和所述解析IP列表中的IP地址的连接情况,对所述IP地址进行排序。
7.根据权利要求4所述的方法,其特征在于,还包括:
访问所述HttpDNS网关服务器时,发送秘钥信息和访问信息,以进行访问校验;
若校验通过,则能够得到所述第三IP地址和所述第四IP地址;
若校验未通过,则不能得到所述第三IP地址和所述第四IP地址。
8.一种域名请求装置,其特征在于,包括:
获取单元,用于获取网络环境信息,其中,所述网络环境信息包括互联网通信协议版本信息;
查询单元,用于发送域名请求时,查询本地存储的域名IP列表,以得到第一IP地址,其中,所述域名IP列表用于存储所述第一IP地址,所述第一IP地址为与所述网络环境信息和域名相对应的IP地址,所述域名为所述域名请求中的域名信息;
解析单元,用于若查询失败,则通过HttpDNS域名解析服务器解析所述域名,以得到所述第一IP地址。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如权利要求1至权利要求7中任一项所述的域名请求方法的步骤。
10.一种电子设备,其特征在于,所述设备包括至少一个处理器、以及与所述处理器连接的至少一个存储器;其中,所述处理器用于调用所述存储器中的程序指令,执行如权利要求1至权利要求7中任一项所述的域名请求方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110930338.7A CN115706722A (zh) | 2021-08-13 | 2021-08-13 | 域名请求方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110930338.7A CN115706722A (zh) | 2021-08-13 | 2021-08-13 | 域名请求方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115706722A true CN115706722A (zh) | 2023-02-17 |
Family
ID=85181129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110930338.7A Pending CN115706722A (zh) | 2021-08-13 | 2021-08-13 | 域名请求方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115706722A (zh) |
-
2021
- 2021-08-13 CN CN202110930338.7A patent/CN115706722A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9578040B2 (en) | Packet receiving method, deep packet inspection device and system | |
TWI475863B (zh) | 使用快取之安全資源名稱解析 | |
TWI478564B (zh) | 用於安全資源名稱解析的方法、電腦可讀取儲存媒體及設備 | |
CN109067930B (zh) | 域名接入方法、域名解析方法、服务器、终端及存储介质 | |
US9225731B2 (en) | System for detecting the presence of rogue domain name service providers through passive monitoring | |
CN108809890B (zh) | 漏洞检测方法、测试服务器及客户端 | |
CN108063833B (zh) | Http dns解析报文处理方法及装置 | |
US10931688B2 (en) | Malicious website discovery using web analytics identifiers | |
CN105827599A (zh) | 一种基于dns报文深度解析的缓存中毒检测方法及装置 | |
CN107623693B (zh) | 域名解析防护方法及装置、系统、计算设备、存储介质 | |
CN114465791B (zh) | 网管设备中白名单的建立方法、装置、存储介质及处理器 | |
CN113542292A (zh) | 基于dns和ip信誉数据的内网安全防护方法及系统 | |
JP5644710B2 (ja) | ノード検出装置、ノード検出方法、及びプログラム | |
CN101599857A (zh) | 检测共享接入主机数目的方法、装置及网络检测系统 | |
CN110933193A (zh) | 域名解析方法、装置、电子设备及计算机可读存储介质 | |
CN114374669A (zh) | Vpn客户端代理dns解析方法及系统 | |
CN109495602B (zh) | 一种网络接入异常的处理方法及装置 | |
CN116566945A (zh) | 去中心化应用的访问方法、装置、电子设备及存储介质 | |
CN107592374B (zh) | 域名错误解析的纠正方法和系统 | |
CN107483294B (zh) | 监控网络请求的方法及装置 | |
CN115706722A (zh) | 域名请求方法、装置、存储介质及电子设备 | |
CN113726647B (zh) | 一种标识解析方法及装置 | |
JP2017118248A (ja) | 名前解決装置、名前解決方法及び名前解決プログラム | |
US10333966B2 (en) | Quarantining an internet protocol address | |
CN114338630A (zh) | 域名访问方法、装置、电子设备、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |