CN107635027A - 一种域名解析方法、介质、装置和计算设备 - Google Patents
一种域名解析方法、介质、装置和计算设备 Download PDFInfo
- Publication number
- CN107635027A CN107635027A CN201710891396.7A CN201710891396A CN107635027A CN 107635027 A CN107635027 A CN 107635027A CN 201710891396 A CN201710891396 A CN 201710891396A CN 107635027 A CN107635027 A CN 107635027A
- Authority
- CN
- China
- Prior art keywords
- domain name
- function
- address
- address list
- network
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的实施方式提供了一种域名解析方法,该方法包括:获取来自用户的网络访问请求,所述请求中携带指定域名;检测到任一网络库中的原生域名解析函数被调用时,根据预先修改的函数地址,跳转至自定义域名解析函数;在自定义域名解析函数中,调用用于从网络域名服务器获取所述指定域名对应的网络协议IP地址列表的获取函数;将所述获取函数返回的IP地址列表作为所述指定域名对应的IP地址列表。本发明的实施方式无需技术人员自行修改代码即可达到域名解析的目的,从而减少了技术人员的工作量。此外,本发明的实施方式还提供了一种域名解析介质、装置和计算设备。
Description
技术领域
本发明的实施方式涉及网络通信处理技术领域,更具体地,本发明的实施方式涉及一种域名解析方法、介质、装置和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,安装有安卓操作系统的智能终端在接入httpdns时,常采用以下方式进行域名解析:
接收用户发送的网络访问请求,该网络访问请求的头部的携带域名;从网络域名服务器(httpdns)获取该请求中携带的域名对应的IP地址列表;从IP地址列表中选取一个IP地址;将网络访问请求的头部携带的域名替换为选取的IP地址,得到携带IP地址的网络访问请求;当前网络库根据携带IP地址的网络访问请求与相应的业务服务器建立网络连接。
发明人发现,目前的域名解析方式中,标准网络库仅封装了根据携带IP地址的网络访问请求访问网络的协议,技术人员需要自行通过代码修改实现得到携带IP地址的网络访问请求的步骤,这就会使技术人员的工作量增加。
发明内容
现有的域名解析方式中,标准网络库仅封装了根据携带IP地址的网络访问请求访问网络的协议,技术人员需要自行通过代码修改实现得到携带IP地址的网络访问请求的步骤,这就会使技术人员的工作量增加。为此,非常需要一种改进的域名解析方案,从而避免技术人员自行通过代码修改实现得到携带IP地址的网络访问请求的步骤,进而减少技术人员的工作量。
在本上下文中,本发明的实施方式期望提供一种域名解析方法、介质、装置和计算设备。
在本发明实施方式的第一方面中,提供了一种域名解析方法,包括:
获取来自用户的网络访问请求,所述请求中携带指定域名;
检测到任一网络库中的原生域名解析函数被调用时,根据预先修改的函数地址,跳转至自定义域名解析函数;
在自定义域名解析函数中,调用用于从网络域名服务器获取所述指定域名对应的网络协议IP地址列表的获取函数;
将所述获取函数返回的IP地址列表作为所述指定域名对应的IP地址列表。
在本发明实施方式的第二方面中,提供了一种域名解析装置,包括:
获取模块,用于获取来自用户的网络访问请求,所述请求中携带指定域名;
检测模块,用于检测到任一网络库中的原生域名解析函数被调用时,根据预先修改的函数地址,跳转至自定义域名解析函数;
调用模块,用于在自定义域名解析函数中,调用用于从网络域名服务器获取所述指定域名对应的网络协议IP地址列表的获取函数;
列表确定模块,用于将所述获取函数返回的IP地址列表作为所述指定域名对应的IP地址列表。
在本发明实施方式的第三方面中,本发明实施例提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行实现上述域名解析方法的步骤。
在本发明实施方式的第四方面中,本发明实施例提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述域名解析方法的步骤。
根据本发明实施方式提供的域名解析方法、介质、装置和计算设备,检测到任意一个网络库中的原生域名解析函数被调用时,均跳转至自定义域名解析函数,并由自定义域名解析函数进行域名解析获取指定域名对应的IP地址列表。即预先封装好自定义域名解析函数,无需技术人员自行修改代码即可达到域名解析的目的,从而减少了技术人员的工作量。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的应用场景示意图;
图2示意性地示出了根据本发明实施方式的域名解析方法的流程示意图;
图3示意性地示出了根据本发明实施方式的跳转至自定义域名解析函数的方法流程示意图;
图4示意性地示出了根据本发明实施方式的发送网络数据的方法流程示意图;
图5示意性地示出了根据本发明实施方式的预先存储域名与网络数据的对应关系的方法流程示意图;
图6示意性地示出了根据本发明实施方式的确定业务服务的方法流程示意图;
图7示意性地示出了根据本发明实施方式的域名解析装置的结构示意图;
图8示意性地示出了根据本发明实施方式的用于实现域名解析方法的程序产品示意图;
图9示意性地示出了根据本发明实施方式的用于实现域名解析方法的计算设备的硬件结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种域名解析方法、介质、装置和计算设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,现有技术中的域名解析方式中,标准网络库仅封装了根据携带IP地址的网络访问请求访问网络的协议,技术人员需要自行通过代码修改实现得到携带IP地址的网络访问请求的步骤,这就会使技术人员的工作量增加。
为此,本发明实施例提供一种域名解析方法、介质、装置和计算设备,该方法可以包括:获取来自用户的网络访问请求,所述请求中携带指定域名;检测到任一网络库中的原生域名解析函数被调用时,根据预先修改的函数地址,跳转至自定义域名解析函数;在自定义域名解析函数中,调用用于从网络域名服务器获取所述指定域名对应的网络协议IP地址列表的获取函数;将所述获取函数返回的IP地址列表作为所述指定域名对应的IP地址列表。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
首先参考图1,如图1所示,为本发明实施例提供的域名解析方法的应用场景示意图,包括用户终端101和网络域名服务器102,其中,用户终端101中安装有安卓系统,用户终端101获取来自用户10的网络访问请求,所述请求中携带指定域名;检测到任一网络库中的原生域名解析函数被调用时,根据预先修改的函数地址,跳转至自定义域名解析函数;在自定义域名解析函数中,调用用于从网络域名服务器102获取所述指定域名对应的网络协议IP地址列表的获取函数;将所述获取函数返回的IP地址列表作为所述指定域名对应的IP地址列表。其中,用户终端101和网络域名服务器102通过可以通过局域网、广域网或移动互联网等通信网络进行通信;用户终端101为便携设备,例如:手机、平板等。
示例性方法
下面结合图1的应用场景,参考图2~图6来描述根据本发明示例性实施方式的域名解析方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
图2为本发明提供的一种域名解析方法的一实施例的流程示意图,主要包括向对用户请求访问的域名进行域名解析的流程,执行主体为应用场景总览中的用户终端101(更具体地,为用户终端101中安装的用于进行域名解析的应用程序)如图2所示,本发明实施例提供的一种域名解析方法,包括如下步骤:
步骤201,获取来自用户的网络访问请求,所述请求中携带指定域名。
具体实施时,当用户通过用户终端发送网络访问请求时,用户终端截取来自该用户的网络访问请求,该网络访问请求中携带指定域名,即该用户选择访问的域名。可选地,用户终端的操作系统为安卓操作系统。
步骤202,检测到任一网络库中的原生域名解析函数被调用时,根据预先修改的函数地址,跳转至自定义域名解析函数。
具体实施时,用户终端的操作系统中包括多个网络库,每个网络库中封装了相应的网络协议,且每个网络库中包括一原生的域名解析函数,用于对来自用户的网络访问请求中的指定域名进行域名解析。本步骤中,当检测到用户终端的操作系统中的任一网络库中的原生域名解析函数被调用时,则根据预先修改的函数地址,跳转至自定义域名解析函数,在自定义域名解析函数中对来自用户的网络访问请求中的指定域名进行域名解析。其中,预先将各个网络库中原生域名解析函数的函数地址修改为自定义域名解析函数的地址,从而实现从原生域名解析函数跳转至自定义域名解析函数,具体的函数地址的修改方式可采用现有技术,可以采用下文中提及的函数地址修改方式。
以用户终端的操作系统为安卓操作系统为例,现有技术中,安卓5.0以下的安卓系统中的原生域名解析函数为getaddrinfo函数,安卓5.0以及安卓5.0以上的安卓系统中的原生域名解析函数为android_getaddrinfofornet函数。
其中,getaddrinfo函数为具有如下签名的函数:int getaddrinfo(const char*hostname,const char*service,const struct addrinfo*hints,struct addrinfo**result);
getaddrinfo函数通过hostname参数来指定查询的域名,result参数来返回域名对应的IP地址列表。
其中,android_getaddrinfofornet函数为具有以下签名的函数:Int android_getaddrinfofornet(const char*hostname,const char*service,const structaddrinfo*hints,struct addrinfo**result);
android_getaddrinfofornet函数通过hostname参数来指定查询的域名,result参数来返回域名对应的IP地址列表。
本步骤中,检测到安卓5.0以下的安卓系统中的任一网络库中的原生域名解析函数被调用时,跳转至安卓5.0以下的安卓系统中的自定义域名解析函数,比如该自定义域名解析函数的名称为elf_getaddrinfo,检测到安卓5.0以及5.0以上的安卓系统中的任一网络库中的原生域名解析函数被调用时,跳转至安卓5.0以及5.0以上的安卓系统中的自定义域名解析函数,比如该自定义域名解析函数的名称为elf_android_getaddrinfofornet。其中,自定义域名解析函数的名称仅为一种举例,也可以将自定义域名解析函数的名称设置为其它名称,其中,安卓5.0以下的安卓系统中的自定义域名解析函数的名称需要符合安卓5.0以下的安卓系统对函数格式的要求;安卓5.0以及5.0以上的安卓系统中的自定义域名解析函数的名称需要符合相应安卓系统对函数格式的要求。
步骤203,在自定义域名解析函数中,调用用于从网络域名服务器获取所述指定域名对应的IP地址列表的获取函数。
具体实施时,在自定义域名解析函数中调用获取函数,该获取函数用于从网络域名服务器(httpdns)获取指定域名对应的IP(Internet Protocol,网络协议)地址列表。该获取函数可以为get_http_dns_addr函数,该函数使用hostname作为域名查询参数,返回域名解析结果,当返回的域名解析结果不为空时即返回指定域名对应的IP地址列表。
步骤204,将所述获取函数返回的IP地址列表作为所述指定域名对应的IP地址列表。
本步骤中,将获取函数返回的IP地址列表确定为对指定域名进行域名解析后所得到的域名解析结果。
本发明实施例,检测到任意一个网络库中的原生域名解析函数被调用时,均跳转至自定义域名解析函数,并由自定义域名解析函数进行域名解析获取指定域名对应的IP地址列表。即预先封装好自定义域名解析函数,无需技术人员自行修改代码即可达到域名解析的目的,从而减少了技术人员的工作量。
可选地,本发明实施例提供的域名解析方法,还包括:
若所述获取函数未返回IP地址列表,则跳转至所述任一网络库中的原生域名解析函数;
在所述原生域名解析函数中,调用用于从本地域名服务器获取所述指定域名对应的IP地址列表的函数。
具体实施时,在获取函数返回的域名解析结果为空的情况下,即在获取函数未返回指定域名对应的IP地址列表的情况下,跳转至网络库中的原生域名解析函数,并在原生域名解析函数中调用用于从本地域名服务器(LocalDNS)获取指定域名对应的IP地址列表的函数。
本发明实施例,在获取函数未返回IP地址列表的情况下,利用原生域名解析函数从本地域名服务器获取相应的IP地址列表,以为用户提供正常的网络访问服务。
可选地,按照图3提供的内容,预先采用如下方式修改函数地址:
步骤301,通过hook技术,获取原生域名解析函数的地址。
步骤302,将所述原生域名解析函数的地址修改为所述自定义域名解析函数的地址。
具体实施时,利用hook(钩子)技术,获取原生域名解析函数的地址,将获取的该原生域名解析函数的地址修改为自定义域名解析函数的地址,在检测到该原生域名解析函数被调用时,根据修改后的地址跳转至自定义域名解析函数。
以用户终端的操作系统为安卓5.0版本的安卓系统为例,通过调用set_hook方法,查找libjavacore.so中的函数getaddrinfo的地址,将函数getaddrinfo的地址修改为自定义域名解析函数elf_getaddrinfo的地址。以用户终端的系统为安卓5.0版本或者5.0以上版本的安卓系统为例,通过调用set_hook方法,查找libjavacore.so中的函数android_getaddrinfofornet的地址,将函数android_getaddrinfofornet的地址修为自定义域名解析函数elf_android_getaddrinfofornet的地址,从而实现函数hook,达到从原生域名解析函数跳转至自定义域名解析函数的目的。
实现本发明实施例的部分伪代码如下:
可选地,如图4所示,本发明实施例提供的域名解析方法,还包括:
步骤401,根据所述IP地址列表确定业务服务器。
具体实施时,解析出指定域名对应到IP地址列表后,根据该IP地址列表确定用于提供网络访问请求所请求的网络数据的业务服务器,以使用户达到最终的访问网络的目的。
步骤402,从预先存储的域名与网络数据的对应关系中,查找所述指定域名对应的网络数据,所述网络数据包括cookie信息和/或认证授权信息。
具体实施时,预先存储域名与网络数据的对应关系,该网络数据可以包括cookie信息,和/或,认证授权信息,其中,认证授权信息可以包括https证书等。本步骤中,从预先存储的域名与网络数据的对应关系中查找指定域名对应的网络数据。
步骤403,将查找到的网络数据添加至所述网络访问请求中。
具体实施时,将查找到的网络数据添加至来自用户的网络访问请求中用于携带网络数据的字段。
步骤404,将添加网络数据的网络访问请求发送给所述业务服务器。
具体实施时,将添加了网络数据的网络访问请求发送至步骤401所确定出的业务服务器。
现有技术中,从IP地址列表中选取一个IP地址;将网络访问请求的头部携带的域名替换为选取的IP地址;根据头部携带的选取的IP地址的网络访问请求与该选取的IP地址对应的业务服务器建立网络连接;以及,从本地存储的IP地址与网络数据的对应关系中,查找选取的IP地址对应的网络数据;将查找到的网络数据发送至该选取的IP地址对应的业务服务器。发明人发现,现有技术中,仅保存IP地址与网络数据的对应关系,然而,同一域名对应的IP地址可能包括多个,在用户多次发送针对同一域名的网络访问请求的情况下,若本次从该域名对应IP地址列表中选取的IP地址与其它次从该与域名对应的IP地址列表中选取的IP地址不同,则可能无法从保存的IP地址与网络数据的对应关系中查找到本次选取的IP地址对应的网络数据,此时,就需要重新保存一条本次选取的IP与网络数据的对应关系,实际应用中,本次选取的IP对应的网络数据与其它次选取的IP地址对应的网络数据相同,此时就会出现网络数据复用性较差、保存的数据冗余的问题。本发明实施例预先存储域名与网络数据的对应关系,这样无论从指定域名对应的IP地址列表中选取的IP地址为哪个,均可从域名与网络数据的关系中查找到指定域名对应的网络数据并发送,从而在一定程度上提高了网络数据的复用性、保存的数据相对简洁。
可选地,按照图5提供的内容,预先存储域名与网络数据的对应关系:
步骤501,针对来自所述用户的每个历史网络访问请求中的域名,对该域名进行域名解析,得到该域名对应的IP地址列表。
具体实施时,针对来自该用户的每个历史网络访问请求中的域名,解析得到该域名对应的IP地址列表。
步骤502,根据该域名对应的IP地址列表确定业务服务器。
步骤503,接收该确定的业务服务器反馈的网络数据。
具体实施时,根据域名对应的IP地址列表确定业务服务器后,与该确定的业务服务器建立网络连接,此时,业务服务器会向用户终端反馈网络数据。
步骤504,保存该确定的业务服务器反馈的网络数据与该域名的对应关系。
可选地,按照图6提供的内容,根据任一IP地址列表确定业务服务器:
步骤601,从所述任一IP地址列表中选取一个IP地址。
具体实施,可从该任一IP地址列表中随机选取一个IP地址,或者,选取该任一IP地址列表中的第一个IP地址,这里不做限定。
步骤602,将选取的IP地址指向的业务服务器作为根据所述任一IP地址列表确定的业务服务器。
具体实施时,将选取的IP地址指向的业务服务器作为确定的业务服务器,即,将选取的IP地址对应的业务服务器作为确定的业务服务器。
利用图6提供的内容,可实现根据域名对应的IP地址列表确定业务服务器。
示例性装置
在介绍了本发明示例性实施方式的域名解析方法之后,接下来,参考图7描述本发明示例性实施方式的域名解析装置。
图7为本发明实施例提供的一种域名解析装置的结构示意图,如图7所示,可以包括如下模块:
获取模块701,用于获取来自用户的网络访问请求,所述请求中携带指定域名;
检测模块702,用于检测到任一网络库中的原生域名解析函数被调用时,根据预先修改的函数地址,跳转至自定义域名解析函数;
调用模块703,用于在自定义域名解析函数中,调用用于从网络域名服务器获取所述指定域名对应的网络协议IP地址列表的获取函数;
列表确定模块704,用于将所述获取函数返回的IP地址列表作为所述指定域名对应的IP地址列表。
可选地,所述装置中,所述调用模块703,还用于:
若所述获取函数未返回IP地址列表,则跳转至所述任一网络库中的原生域名解析函数;
在所述原生域名解析函数中,调用用于从本地域名服务器获取所述指定域名对应的IP地址列表的函数。
可选地,本发明实施例提供的域名解析装置,还包括:
修改模块705,用于通过钩子hook技术,获取原生域名解析函数的地址;将所述原生域名解析函数的地址修改为所述自定义域名解析函数的地址。
可选地,本发明实施例提供的域名解析装置,还包括:
确定模块706,用于根据所述IP地址列表确定业务服务器;
查找模块707,用于从预先存储的域名与网络数据的对应关系中,查找所述指定域名对应的网络数据,所述网络数据包括cookie信息和/或认证授权信息;
添加模块708,用于将所述查找模块查找到的网络数据添加至所述网络访问请求中;
发送模块709,用于将添加网络数据的网络访问请求发送给所述业务服务器。
可选地,本发明实施例提供的域名解析装置,还包括:
关系存储模块710,用于采用如下方式预先存储域名与网络数据的对应关系:
针对来自所述用户的每个历史网络访问请求中的域名,对该域名进行域名解析,得到该域名对应的IP地址列表;
根据该域名对应的IP地址列表确定业务服务器;
接收该确定的业务服务器反馈的网络数据;
保存该确定的业务服务器反馈的网络数据与该域名的对应关系。
可选地,所述装置中,所述确定模块705用于采用如下方式根据任一IP地址列表确定业务服务器:
从所述任一IP地址列表中选取一个IP地址;
将选取的IP地址指向的业务服务器作为根据所述任一IP地址列表确定的业务服务器。
示例性介质
在介绍了本发明示例性实施方式的域名解析方法和装置之后,接下来,对本发明示例性实施方式的用于域名解析的计算机可读介质进行介绍。本发明实施例提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的域名解析方法中的步骤,比如实现如图2中所示的步骤201,获取来自用户的网络访问请求,所述请求中携带指定域名;步骤202,检测到任一网络库中的原生域名解析函数被调用时,根据预先修改的函数地址,跳转至自定义域名解析函数;步骤203,在自定义域名解析函数中,调用用于从网络域名服务器获取所述指定域名对应的网络协议IP地址列表的获取函数;步骤204将所述获取函数返回的IP地址列表作为所述指定域名对应的IP地址列表。
可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图8所示,描述了根据本发明的实施方式的用于域名解析的程序产品80,其可以采用便携式紧凑盘只读存储器(CD-ROM)的形式,并包括程序代码,程序代码可以在终端设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户设备上执行、部分在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户设备,或者,可以连接到外部计算设备。
示例性计算设备
在介绍了本发明示例性实施方式的域名解析方法、装置、和介质之后,接下来,参考图9对本发明示例性实施方式的用于域名解析的计算设备进行介绍。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的用于域名解析的计算设备可以至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的域名解析方法中的步骤。例如,所述处理器执行所述程序时实现如图2中所示的步骤201,获取来自用户的网络访问请求,所述请求中携带指定域名;步骤202,检测到任一网络库中的原生域名解析函数被调用时,根据预先修改的函数地址,跳转至自定义域名解析函数;步骤203,在自定义域名解析函数中,调用用于从网络域名服务器获取所述指定域名对应的网络协议IP地址列表的获取函数;步骤204将所述获取函数返回的IP地址列表作为所述指定域名对应的IP地址列表。
下面参照图9来描述根据本发明的这种实施方式的计算设备90。图9显示的计算设备90仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算设备90以通用计算设备的形式表现。计算设备90的组件可以包括但不限于:上述至少处理器901、上述存储器902、连接不同系统组件(包括处理器901和存储器902)的总线903。
总线903包括地址总线、控制总线和数据总线。
存储器902可以包括易失性存储器,例如随机存取存储器(RAM)9021和/或高速缓存存储器9022,还可以进一步包括只读存储器(ROM)9023。
存储器902还可以包括具有一组(至少一个)程序模块9024的程序/实用工具9025,这样的程序模块9024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备90也可以与一个或多个外部设备904(例如键盘、指向设备等)通信,这种通信可以通过输入/输出(I/O)接口905进行。并且,计算设备90还可以通过网络适配器906与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图9所示,网络适配器906通过总线903与计算设备90的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备90使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
根据本发明实施方式提供的域名解析方法、介质、装置和计算设备,检测到任意一个网络库中的原生域名解析函数被调用时,均跳转至自定义域名解析函数,并由自定义域名解析函数进行域名解析获取指定域名对应的IP地址列表。即预先封装好自定义域名解析函数,无需技术人员自行修改代码即可达到域名解析的目的,从而减少了技术人员的工作量。
应当注意,尽管在上文详细描述中提及了域名解析装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (14)
1.一种域名解析方法,包括:
获取来自用户的网络访问请求,所述请求中携带指定域名;
检测到任一网络库中的原生域名解析函数被调用时,根据预先修改的函数地址,跳转至自定义域名解析函数;
在自定义域名解析函数中,调用用于从网络域名服务器获取所述指定域名对应的网络协议IP地址列表的获取函数;
将所述获取函数返回的IP地址列表作为所述指定域名对应的IP地址列表。
2.根据权利要求1所述的方法,还包括:
若所述获取函数未返回IP地址列表,则跳转至所述任一网络库中的原生域名解析函数;
在所述原生域名解析函数中,调用用于从本地域名服务器获取所述指定域名对应的IP地址列表的函数。
3.根据权利要求1或2所述的方法,其中,预先采用如下方式修改函数地址:
通过钩子hook技术,获取原生域名解析函数的地址;
将所述原生域名解析函数的地址修改为所述自定义域名解析函数的地址。
4.根据权利要求1所述的方法,还包括:
根据所述IP地址列表确定业务服务器;
从预先存储的域名与网络数据的对应关系中,查找所述指定域名对应的网络数据,所述网络数据包括cookie信息和/或认证授权信息;
将查找到的网络数据添加至所述网络访问请求中;
将添加网络数据的网络访问请求发送给所述业务服务器。
5.根据权利要求4所述的方法,其中,采用如下方式预先存储域名与网络数据的对应关系:
针对来自所述用户的每个历史网络访问请求中的域名,对该域名进行域名解析,得到该域名对应的IP地址列表;
根据该域名对应的IP地址列表确定业务服务器;
接收该确定的业务服务器反馈的网络数据;
保存该确定的业务服务器反馈的网络数据与该域名的对应关系。
6.根据权利要求4或5所述的方法,其中,采用如下方式根据任一IP地址列表确定业务服务器:
从所述任一IP地址列表中选取一个IP地址;
将选取的IP地址指向的业务服务器作为根据所述任一IP地址列表确定的业务服务器。
7.一种域名解析装置,包括:
获取模块,用于获取来自用户的网络访问请求,所述请求中携带指定域名;
检测模块,用于检测到任一网络库中的原生域名解析函数被调用时,根据预先修改的函数地址,跳转至自定义域名解析函数;
调用模块,用于在自定义域名解析函数中,调用用于从网络域名服务器获取所述指定域名对应的网络协议IP地址列表的获取函数;
列表确定模块,用于将所述获取函数返回的IP地址列表作为所述指定域名对应的IP地址列表。
8.根据权利要求7所述的装置,其中,所述调用模块,还用于:
若所述获取函数未返回IP地址列表,则跳转至所述任一网络库中的原生域名解析函数;
在所述原生域名解析函数中,调用用于从本地域名服务器获取所述指定域名对应的IP地址列表的函数。
9.根据权利要求7或8所述的装置,还包括:
修改模块,用于通过钩子hook技术,获取原生域名解析函数的地址;将所述原生域名解析函数的地址修改为所述自定义域名解析函数的地址。
10.根据权利要求7所述的装置,还包括:
确定模块,用于根据所述IP地址列表确定业务服务器;
查找模块,用于从预先存储的域名与网络数据的对应关系中,查找所述指定域名对应的网络数据,所述网络数据包括cookie信息和/或认证授权信息;
添加模块,用于将所述查找模块查找到的网络数据添加至所述网络访问请求中;
发送模块,用于将添加网络数据的网络访问请求发送给所述业务服务器。
11.根据权利要求10所述的装置,还包括:
关系存储模块,用于采用如下方式预先存储域名与网络数据的对应关系:
针对来自所述用户的每个历史网络访问请求中的域名,对该域名进行域名解析,得到该域名对应的IP地址列表;
根据该域名对应的IP地址列表确定业务服务器;
接收该确定的业务服务器反馈的网络数据;
保存该确定的业务服务器反馈的网络数据与该域名的对应关系。
12.根据权利要求10或11所述的装置,其中,所述确定模块用于采用如下方式根据任一IP地址列表确定业务服务器:
从所述任一IP地址列表中选取一个IP地址;
将选取的IP地址指向的业务服务器作为根据所述任一IP地址列表确定的业务服务器。
13.一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行实现权利要求1-6任一所述方法的步骤。
14.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-6任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710891396.7A CN107635027B (zh) | 2017-09-27 | 2017-09-27 | 一种域名解析方法、介质、装置和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710891396.7A CN107635027B (zh) | 2017-09-27 | 2017-09-27 | 一种域名解析方法、介质、装置和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107635027A true CN107635027A (zh) | 2018-01-26 |
CN107635027B CN107635027B (zh) | 2021-03-30 |
Family
ID=61102962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710891396.7A Active CN107635027B (zh) | 2017-09-27 | 2017-09-27 | 一种域名解析方法、介质、装置和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107635027B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108388657A (zh) * | 2018-03-06 | 2018-08-10 | 五八有限公司 | cookie存储方法、装置、设备及可读存储介质 |
CN108551495A (zh) * | 2018-07-26 | 2018-09-18 | 杭州云缔盟科技有限公司 | 一种不使用dns协议或类似协议的域名访问方法 |
CN110086895A (zh) * | 2019-04-11 | 2019-08-02 | 天津字节跳动科技有限公司 | 域名解析方法、装置、介质和电子设备 |
CN110187835A (zh) * | 2019-05-24 | 2019-08-30 | 北京百度网讯科技有限公司 | 用于管理访问请求的方法、装置、设备和存储介质 |
CN112040027A (zh) * | 2020-09-14 | 2020-12-04 | 网易(杭州)网络有限公司 | 一种数据处理的方法及装置、电子设备、存储介质 |
CN112887451A (zh) * | 2021-02-25 | 2021-06-01 | 上海哔哩哔哩科技有限公司 | 域名解析方法、装置及计算机设备 |
CN114024936A (zh) * | 2020-07-17 | 2022-02-08 | 北京搜狗科技发展有限公司 | 一种基于httpdns的dns解析方法及装置 |
CN114338817A (zh) * | 2021-12-22 | 2022-04-12 | 中国人民银行清算总中心 | 多平面网络访问控制方法及多平面网络 |
CN115277645A (zh) * | 2022-06-30 | 2022-11-01 | 南京云柜网络科技有限公司 | 快递业务的广域网ip地址更新方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834910A (zh) * | 2007-04-04 | 2010-09-15 | 华为技术有限公司 | 域名解析方法及装置 |
CN104683330A (zh) * | 2015-02-06 | 2015-06-03 | 广州酷狗计算机科技有限公司 | 反域名劫持方法和装置 |
CN105100174A (zh) * | 2014-05-22 | 2015-11-25 | 中国移动通信集团公司 | 一种互联网资源的调度方法、装置和系统 |
CN105279156A (zh) * | 2014-05-29 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 网络信息通信方法及网络信息浏览装置 |
US9654440B1 (en) * | 2014-03-07 | 2017-05-16 | Sprint Communications Company L.P. | Modification of domain name systems using session initiation protocol messages |
-
2017
- 2017-09-27 CN CN201710891396.7A patent/CN107635027B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834910A (zh) * | 2007-04-04 | 2010-09-15 | 华为技术有限公司 | 域名解析方法及装置 |
US9654440B1 (en) * | 2014-03-07 | 2017-05-16 | Sprint Communications Company L.P. | Modification of domain name systems using session initiation protocol messages |
CN105100174A (zh) * | 2014-05-22 | 2015-11-25 | 中国移动通信集团公司 | 一种互联网资源的调度方法、装置和系统 |
CN105279156A (zh) * | 2014-05-29 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 网络信息通信方法及网络信息浏览装置 |
CN104683330A (zh) * | 2015-02-06 | 2015-06-03 | 广州酷狗计算机科技有限公司 | 反域名劫持方法和装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108388657A (zh) * | 2018-03-06 | 2018-08-10 | 五八有限公司 | cookie存储方法、装置、设备及可读存储介质 |
CN108551495A (zh) * | 2018-07-26 | 2018-09-18 | 杭州云缔盟科技有限公司 | 一种不使用dns协议或类似协议的域名访问方法 |
CN110086895A (zh) * | 2019-04-11 | 2019-08-02 | 天津字节跳动科技有限公司 | 域名解析方法、装置、介质和电子设备 |
CN110187835B (zh) * | 2019-05-24 | 2023-02-03 | 北京百度网讯科技有限公司 | 用于管理访问请求的方法、装置、设备和存储介质 |
CN110187835A (zh) * | 2019-05-24 | 2019-08-30 | 北京百度网讯科技有限公司 | 用于管理访问请求的方法、装置、设备和存储介质 |
CN114024936A (zh) * | 2020-07-17 | 2022-02-08 | 北京搜狗科技发展有限公司 | 一种基于httpdns的dns解析方法及装置 |
CN112040027A (zh) * | 2020-09-14 | 2020-12-04 | 网易(杭州)网络有限公司 | 一种数据处理的方法及装置、电子设备、存储介质 |
CN112040027B (zh) * | 2020-09-14 | 2023-06-16 | 网易(杭州)网络有限公司 | 一种数据处理的方法及装置、电子设备、存储介质 |
CN112887451A (zh) * | 2021-02-25 | 2021-06-01 | 上海哔哩哔哩科技有限公司 | 域名解析方法、装置及计算机设备 |
CN114338817A (zh) * | 2021-12-22 | 2022-04-12 | 中国人民银行清算总中心 | 多平面网络访问控制方法及多平面网络 |
CN114338817B (zh) * | 2021-12-22 | 2023-11-10 | 中国人民银行清算总中心 | 多平面网络访问控制方法及多平面网络 |
CN115277645A (zh) * | 2022-06-30 | 2022-11-01 | 南京云柜网络科技有限公司 | 快递业务的广域网ip地址更新方法、装置、设备及介质 |
CN115277645B (zh) * | 2022-06-30 | 2024-02-23 | 南京云柜网络科技有限公司 | 快递业务的广域网ip地址更新方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107635027B (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107635027A (zh) | 一种域名解析方法、介质、装置和计算设备 | |
CN101431713B (zh) | 一种资源访问方法及设备 | |
KR101008050B1 (ko) | 서비스를 생성, 수행 및 매핑하는 시스템 및 방법 | |
CN108345543B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
KR101777392B1 (ko) | 중앙 서버 및 이에 의한 사용자 음성 처리 방법 | |
CN109375888A (zh) | 一种投屏方法及装置 | |
US20160316423A1 (en) | Network access method and apparatus applied to mobile application | |
US10346291B2 (en) | Testing web applications using clusters | |
CN109033302A (zh) | 一种页面跳转方法、装置、终端及存储介质 | |
US10558710B2 (en) | Sharing server conversational context between multiple cognitive engines | |
CN103997521A (zh) | 一种基于路由器的文件操作方法、装置及路由器 | |
WO2019082015A1 (en) | SEARCH ENGINE OPTIMIZATION TECHNIQUES | |
CN107749931A (zh) | 互动式语音应答的方法、系统、设备及存储介质 | |
US20140074814A1 (en) | Method and apparatus for switching search engine to repeat search | |
US11334333B1 (en) | Generation of adaptive configuration files to satisfy compliance | |
CN107577712B (zh) | 一种加载页面的方法、装置及计算机设备 | |
Bytes et al. | Towards semantic sensitive feature profiling of IoT devices | |
JP4813299B2 (ja) | サービス合成サーバ、サービス合成システム、プログラム及び記録媒体 | |
KR101516414B1 (ko) | 가변형 프로토콜을 이용한 멀티 네트워크 접속제어 시스템 | |
KR101135963B1 (ko) | 어플리케이션 검색 시스템 | |
CN115314257B (zh) | 文件系统的鉴权方法、装置、电子设备及计算机存储介质 | |
CN111147530A (zh) | 系统架构、多语音平台的切换方法、智能终端及存储介质 | |
Odun-Ayo et al. | Cloud and mobile computing–issues and developments | |
CN111031091B (zh) | 云平台虚拟导流技术的自动化适配方法及装置 | |
WO2014161338A1 (en) | Method, apparatus, and system for webgame interaction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB03 | Change of inventor or designer information |
Inventor after: Zheng Wen Inventor after: Chen E Inventor after: Zhang Xiaolong Inventor before: Zheng Wen |
|
CB03 | Change of inventor or designer information | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |