CN102821171B - 通过域名服务提供者进行dns重定向的方法和装置 - Google Patents
通过域名服务提供者进行dns重定向的方法和装置 Download PDFInfo
- Publication number
- CN102821171B CN102821171B CN201210312684.XA CN201210312684A CN102821171B CN 102821171 B CN102821171 B CN 102821171B CN 201210312684 A CN201210312684 A CN 201210312684A CN 102821171 B CN102821171 B CN 102821171B
- Authority
- CN
- China
- Prior art keywords
- domain name
- service supplier
- name service
- returns
- dns
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了通过域名服务提供者(NSP)进行DNS重定向的方法和装置,避免了禁用系统原有NSP而导致的无法上网的问题。其技术方案为:网络应用程序调用域名解析API;域名解析API内部调用多个NSP,其中用于DNS重定向的第一NSP的安装位置位于系统原有的NSP的上方相邻位置,用于DNS重定向的第二NSP的安装位置位于系统原有的NSP的下方相邻位置;域名解析API对各个NSP返回的结果做排序,此时第一NSP返回的结果或者第二NSP返回的结果在系统原有的NSP返回的结果之前;网络应用程序得到位于系统原有的NSP返回的结果之前的第一NSP或者第二NSP的返回结果。
Description
技术领域
本发明涉及一种DNS劫持技术,尤其涉及在客户端针对应用程序的DNS重定向技术。
背景技术
DNS劫持/重定向技术是指介入域名解析过程,在解析某个域名时,可以返回自己指定的地址,这项技术可以用于网页加速。
最常见的手段是把想重定向的域名和指定的地址写入hosts文件中,这是一种基本但是不灵活的方法,也容易被安全软件阻止。
还有一种方法是在本机抓取DNS请求包,然后分析,并伪造回应包。这种方法比较灵活,但是无法区分是哪个应用程序发出的请求。
可以区分应用程序的已知方案是实现一个NSP(域名服务提供者,NamespaceService Provider),安装后禁用系统原有的NS DNS类型的NSP。这个方案的不足之处是需要禁用原有NSP,如果新安装的NSP文件丢失或者和其它第三方NSP冲突,很容易导致系统中没有可用于解析DNS的NSP,最终是用户无法正常上网。
发明内容
本发明的目的在于解决上述问题,提供了一种通过域名服务提供者进行DNS重定向的方法,避免了禁用系统原有NSP而导致的无法上网的问题。
本发明的目的在于提供了一种通过域名服务提供者进行DNS重定向的装置,避免了禁用系统原有NSP而导致的无法上网的问题。
本发明的技术方案为:本发明揭示了一种通过域名服务提供者进行DNS重定向的方法,包括:
网络应用程序调用域名解析API;
域名解析API内部调用多个域名服务提供者,其中用于DNS重定向的第一域名服务提供者的安装位置位于系统原有的域名服务提供者的上方相邻位置,用于DNS重定向的第二域名服务提供者的安装位置位于系统原有的域名服务提供者的下方相邻位置;
域名解析API对各个域名服务提供者返回的结果做排序,此时第一域名服务提供者返回的结果或者第二域名服务提供者返回的结果在系统原有的域名服务提供者返回的结果之前;
网络应用程序得到位于系统原有的域名服务提供者返回的结果之前的第一域名服务提供者或者第二域名服务提供者的返回结果。
根据本发明的通过域名服务提供者进行DNS重定向的方法的一实施例,域名解析API根据域名服务提供者的安装顺序的升序对各个域名服务提供者返回的结果进行排序。
根据本发明的通过域名服务提供者进行DNS重定向的方法的一实施例,域名解析API根据域名服务提供者的安装顺序的降序对各个域名服务提供者返回的结果进行排序。
根据本发明的通过域名服务提供者进行DNS重定向的方法的一实施例,该方法在支持IPv6的系统上运行时,域名服务提供者在返回IPv4地址时先将IPv4地址转化为IPv6地址后再返回。
本发明还揭示了一种通过域名服务提供者进行DNS重定向的装置,包括:
API调用模块,由网络应用程序调用域名解析API;
域名服务提供者调用模块,连接API调用模块,域名解析API内部调用多个域名服务提供者,其中用于DNS重定向的第一域名服务提供者的安装位置位于系统原有的域名服务提供者的上方相邻位置,用于DNS重定向的第二域名服务提供者的安装位置位于系统原有的域名服务提供者的下方相邻位置;
排序模块,连接域名服务提供者调用模块,域名解析API对各个域名服务提供者返回的结果做排序,此时第一域名服务提供者返回的结果或者第二域名服务提供者返回的结果在系统原有的域名服务提供者返回的结果之前;
重定向地址返回模块,连接排序模块,网络应用程序得到位于系统原有的域名服务提供者返回的结果之前的第一域名服务提供者或者第二域名服务提供者的返回结果。
根据本发明的通过域名服务提供者进行DNS重定向的装置的一实施例,在排序模块中,域名解析API根据域名服务提供者的安装顺序的升序对各个域名服务提供者返回的结果进行排序。
根据本发明的通过域名服务提供者进行DNS重定向的装置的一实施例,在排序模块中,域名解析API根据域名服务提供者的安装顺序的降序对各个域名服务提供者返回的结果进行排序。
根据本发明的通过域名服务提供者进行DNS重定向的装置的一实施例,该装置在支持IPv6的系统上运行时,域名服务提供者在返回IPv4地址时先将IPv4地址转化为IPv6地址后再返回。
本发明对比现有技术有如下的有益效果:本发明的方案是安装两个NSP,分别位于原有NS DNS类型的NSP的上方和下方,并且在支持IPv6的系统运行,如果要返回IPv4地址则将地址转化为IPv6后返回,这样可以保证无论升序或降序,后安装的两个NSP都可以排在最前和最后。相较于现有技术,本发明既保留了系统原有的NSP,又能够实现重定向以用于网络加速,是一种安全有效的DNS重定向方案。
附图说明
图1示出了本发明的通过域名服务提供者进行DNS重定向的方法的较佳实施例的流程图。
图2示出了本发明的通过域名服务提供者进行DNS重定向的装置的较佳实施例的结构图。
图3示出了本发明的通过域名服务提供者进行DNS重定向的方法的示例图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
通过域名服务提供者进行DNS重定向的方法的实施例
图1示出了本发明的通过域名服务提供者进行DNS重定向的方法的较佳实施例的流程。请参见图1,本实施例的方法的实施步骤详述如下。
步骤S10:网络应用程序调用域名解析API。
Windows网络应用程序解析域名一般调用WinSock API函数,这类函数有多个,都能获得相同的地址集合,但是顺序可能不一样。
步骤S12:域名解析API内部调用多个域名服务提供者(NSP),其中用于DNS重定向的第一域名服务提供者的安装位置位于系统原有的域名服务提供者的上方相邻位置,用于DNS重定向的第二域名服务提供者的安装位置位于系统原有的域名服务提供者的下方相邻位置。
步骤S14:域名解析API对各个域名服务提供者返回的结果做排序,此时第一域名服务提供者返回的结果或者第二域名服务提供者返回的结果在系统原有的域名服务提供者返回的结果之前。
例如,域名解析API根据域名服务提供者的安装顺序的升序对各个域名服务提供者返回的结果进行排序,或者域名解析API根据域名服务提供者的安装顺序的降序对各个域名服务提供者返回的结果进行排序。
解析域名的API内部会调用NS DNS类型的NSP,这种NSP可能有多个,他们可能返回不同的结果集,然后API对各个NSP返回的结果集做排序,排序的算法有两个:1、根据NSP安装顺序升序或降序,即两个API返回的结果顺序可能是相反的。2、支持IPv6的系统上,IPv6地址会排在IPv4地址之前。
DNS解析后可能有多个地址,但应用程序一般采用集合中的第一个。所以要实现重定向只需把自己的结果放在最前。但是各个API的排除算法不同,可能刚好相反。应用程序可能使用不同的解析API,所以如果有多个NSP,可能对某些程序可以重定向,对某些又不行,所以现有方法干脆禁用其它NS DNS类型的NSP,保证只有自己返回的结果。
本发明的做法是安装两个NSP,分别位于在原有NS DNS类型的NSP的上方和下方,并且如果在支持IPv6的系统上如果要返回IPv4地址应该把地址转化为IPv6返回,这样可以保证无论升序或降序,自设的NSP都可以排在最前和最后。
此外,若本方法在支持IPv6的系统上运行时,域名服务提供者在返回IPv4地址时先将IPv4地址转化为IPv6地址后再返回。
步骤S16:网络应用程序得到位于系统原有的域名服务提供者返回的结果之前的第一域名服务提供者或者第二域名服务提供者的返回结果。
通过域名服务提供者进行DNS重定向的装置的实施例
图2示出了本发明的通过域名服务提供者进行DNS重定向的装置的较佳实施例的结构图。请参见图2,本实施例的装置包括:依序连接的API调用模块10、域名服务提供者调用模块12、排序模块14以及重定向地址返回模块16。
API调用模块10由网络应用程序调用域名解析API。
域名服务提供者调用模块12中,域名解析API内部调用多个域名服务提供者,其中用于DNS重定向的第一域名服务提供者的安装位置位于系统原有的域名服务提供者的上方相邻位置,用于DNS重定向的第二域名服务提供者的安装位置位于系统原有的域名服务提供者的下方相邻位置。
排序模块14中,域名解析API对各个域名服务提供者返回的结果做排序,此时第一域名服务提供者返回的结果或者第二域名服务提供者返回的结果在系统原有的域名服务提供者返回的结果之前。在排序模块14中,域名解析API根据域名服务提供者的安装顺序的升序或降序对各个域名服务提供者返回的结果进行排序。本实施例的装置在支持IPv6的系统上运行时,域名服务提供者在返回IPv4地址时先将IPv4地址转化为IPv6地址后再返回。
重定向地址返回模块16中,网络应用程序得到位于系统原有的域名服务提供者返回的结果之前的第一域名服务提供者或者第二域名服务提供者的返回结果。
通过域名服务提供者进行DNS重定向的方法的示例
图3示出了本发明的通过域名服务提供者进行DNS重定向的方法的示例。请参见图3,是使用DNS重定向做针对某浏览器和某网站的加速。
假设要加速的浏览器是IE,要加速的网站是http://download.microsoft.com/。还要架设一台加速服务器,上面部署的是CDN的服务程序,假设IP是1.2.3.4。
用于重定向的NSP是一个动态链接库(MyNSP.dll),安装时在系统原来的NSP顶层和底层各安装一个NSP,都指向MyNSP.dll。
MyNSP.dll里面检查了加载它的进程名,发现不是iexplore.exe就忽略,是的话继续。
iexplore.exe会调用API查询域名,过程会经过MyNSP.dll两次(因为本示例中安装了2个NSP),检查查询的域名是否为download.microsoft.com,如果不是则忽略,是继续。
返回加速服务器的地址:1.2.3.4,如果在支持IPv6的系统上,应该返回IPv6形式的地址,即:::ffff:1.2.3.4。
经过API排序,无论正序、反序,返回的结果都是自设的NSP返回的结果都被排在最前,浏览器会采用自设NSP的结果,如果自设NSP不返回,则浏览器采用默认的结果。
上述实施例是提供给本领域普通技术人员来实现和使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书所提到的创新性特征的最大范围。
Claims (8)
1.一种通过域名服务提供者进行DNS重定向的方法,包括:
网络应用程序调用域名解析API;
域名解析API内部调用多个域名服务提供者,其中用于DNS重定向的第一域名服务提供者的安装位置位于系统原有的域名服务提供者的上方相邻位置,用于DNS重定向的第二域名服务提供者的安装位置位于系统原有的域名服务提供者的下方相邻位置;
域名解析API对各个域名服务提供者返回的结果做排序,此时第一域名服务提供者返回的结果或者第二域名服务提供者返回的结果在系统原有的域名服务提供者返回的结果之前;
网络应用程序得到位于系统原有的域名服务提供者返回的结果之前的第一域名服务提供者或者第二域名服务提供者的返回结果。
2.根据权利要求1所述的通过域名服务提供者进行DNS重定向的方法,其特征在于,域名解析API根据域名服务提供者的安装顺序的升序对各个域名服务提供者返回的结果进行排序。
3.根据权利要求1所述的通过域名服务提供者进行DNS重定向的方法,其特征在于,域名解析API根据域名服务提供者的安装顺序的降序对各个域名服务提供者返回的结果进行排序。
4.根据权利要求1所述的通过域名服务提供者进行DNS重定向的方法,其特征在于,该方法在支持IPv6的系统上运行时,域名服务提供者在返回IPv4地址时先将IPv4地址转化为IPv6地址后再返回。
5.一种通过域名服务提供者进行DNS重定向的装置,包括:
API调用模块,用于网络应用程序调用域名解析API;
域名服务提供者调用模块,连接API调用模块,用于域名解析API内部调用多个域名服务提供者,其中用于DNS重定向的第一域名服务提供者的安装位置位于系统原有的域名服务提供者的上方相邻位置,用于DNS重定向的第二域名服务提供者的安装位置位于系统原有的域名服务提供者的下方相邻位置;
排序模块,连接域名服务提供者调用模块,用于域名解析API对各个域名服务提供者返回的结果做排序,此时第一域名服务提供者返回的结果或者第二域名服务提供者返回的结果在系统原有的域名服务提供者返回的结果之前;
重定向地址返回模块,连接排序模块,用于使网络应用程序得到位于系统原有的域名服务提供者返回的结果之前的第一域名服务提供者或者第二域名服务提供者的返回结果。
6.根据权利要求5所述的通过域名服务提供者进行DNS重定向的装置,其特征在于,在排序模块中,域名解析API根据域名服务提供者的安装顺序的升序对各个域名服务提供者返回的结果进行排序。
7.根据权利要求5所述的通过域名服务提供者进行DNS重定向的装置,其特征在于,在排序模块中,域名解析API根据域名服务提供者的安装顺序的降序对各个域名服务提供者返回的结果进行排序。
8.根据权利要求5所述的通过域名服务提供者进行DNS重定向的装置,其特征在于,该装置在支持IPv6的系统上运行时,域名服务提供者在返回IPv4地址时先将IPv4地址转化为IPv6地址后再返回。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210312684.XA CN102821171B (zh) | 2012-08-29 | 2012-08-29 | 通过域名服务提供者进行dns重定向的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210312684.XA CN102821171B (zh) | 2012-08-29 | 2012-08-29 | 通过域名服务提供者进行dns重定向的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102821171A CN102821171A (zh) | 2012-12-12 |
CN102821171B true CN102821171B (zh) | 2015-05-27 |
Family
ID=47305023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210312684.XA Active CN102821171B (zh) | 2012-08-29 | 2012-08-29 | 通过域名服务提供者进行dns重定向的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102821171B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112583952B (zh) * | 2020-12-09 | 2023-01-24 | 北京金山云网络技术有限公司 | 重定向调度处理方法、装置、系统及相关设备、存储介质 |
CN114070820B (zh) * | 2021-11-11 | 2023-09-01 | 南京指掌易信息科技有限公司 | 一种域名重定向方法、装置、介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1956400A (zh) * | 2005-10-27 | 2007-05-02 | 国际商业机器公司 | 用于选择域名服务器的方法和系统 |
CN102340554A (zh) * | 2011-09-29 | 2012-02-01 | 奇智软件(北京)有限公司 | 一种域名系统dns的最优应用服务器选取方法和装置 |
CN102572014A (zh) * | 2012-03-07 | 2012-07-11 | 华为终端有限公司 | 消息处理方法、装置和系统 |
-
2012
- 2012-08-29 CN CN201210312684.XA patent/CN102821171B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1956400A (zh) * | 2005-10-27 | 2007-05-02 | 国际商业机器公司 | 用于选择域名服务器的方法和系统 |
CN102340554A (zh) * | 2011-09-29 | 2012-02-01 | 奇智软件(北京)有限公司 | 一种域名系统dns的最优应用服务器选取方法和装置 |
CN102572014A (zh) * | 2012-03-07 | 2012-07-11 | 华为终端有限公司 | 消息处理方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102821171A (zh) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106101231B (zh) | 通过cdn下载资源的实现方法和装置、服务器、客户端 | |
CN107102847A (zh) | 基于微服务的软件开发方法、装置及系统 | |
CN104717301B (zh) | 插件下载方法及装置 | |
CN104392008A (zh) | 网页数据获取方法、浏览器客户端及cdn服务器 | |
CN106030542A (zh) | 代理服务器故障转移和负载集群 | |
CN105939313B (zh) | 状态码重定向方法及装置 | |
CN103634165A (zh) | 一种基于反向代理实现网络测试的方法、终端设备和系统 | |
CN107273186A (zh) | 访问虚拟机服务器的方法、物理主机以及虚拟机 | |
CN103577427A (zh) | 基于浏览器内核的网页爬取方法、装置及包含该装置的浏览器 | |
CN105100263A (zh) | 一种反向代理方法及装置 | |
CN109819033A (zh) | 一种资源文件加载方法及系统 | |
CN105338072A (zh) | 一种http重定向方法及路由设备 | |
CN104219162A (zh) | 基于dns的分组负载均衡方法、设备及系统 | |
CN103427994A (zh) | 一种识别用户的方法和装置 | |
CN103533080A (zh) | 用于lvs的服务器调度方法及装置 | |
CN102821171B (zh) | 通过域名服务提供者进行dns重定向的方法和装置 | |
CN104869163A (zh) | 一种集群环境下基于代理的动态服务调用方法 | |
CN104506549A (zh) | 建立网游连接的方法、设备及系统 | |
CN110781083A (zh) | 一种h5客户端代码设置多环境测试方法和系统 | |
CN104079429A (zh) | 一种基于referer字段的盗链防护的方法及Web网关 | |
CN103853851B (zh) | 浏览器中的文件下载方法和浏览器装置 | |
CN105763461B (zh) | 路由器升级方法和系统 | |
CN104202403B (zh) | 网页浏览的加速方法、云服务器和浏览器 | |
CN109618004A (zh) | 一种报文转发方法及装置 | |
CN105897844A (zh) | 一种用于助于文件成功下载的设备及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP02 | Change in the address of a patent holder |
Address after: 200030 Shanghai city Xuhui District Xietu Road No. 2899 Building 5 floor A Kuangchi Cultural Square Patentee after: ChinaNetCenter Co., Ltd. Address before: 200030 Shanghai Xuhui District Xietu Road No. 2669 15 Floor Patentee before: ChinaNetCenter Co., Ltd. |