一种防止网络访问被DNS屏蔽的方法技术

技术编号:39438896 阅读:6 留言:0更新日期:2023-11-19 16:22
本发明专利技术公开了一种防止网络访问被DNS屏蔽的方法,包括以下步骤:S1:在网络访问前,挂钩GetAddrInfoW函数,并将所述GetAddrInfoW函数替换为自定义函数;S2:网络访问时,所述自定义函数代替所述GetAddrInfoW函数实现待访问网络域名的域名解析,以获得所述待访问网络域名的真正IP值,避免网络访问被DNS屏蔽。本发明专利技术提供的防止网络访问被DNS屏蔽的方法。可以有效避免被DNS屏蔽,实现正常的网络访问。实现正常的网络访问。实现正常的网络访问。

【技术实现步骤摘要】
一种防止网络访问被DNS屏蔽的方法


[0001]本专利技术涉及网络访问
,更具体的说是涉及一种防止网络访问被DNS屏蔽的方法。

技术介绍

[0002]目前,当某软件运行在某终端时,存在某些程序通过DNS屏蔽的方法阻止该软件进行网络访问的问题。上述DNS屏蔽具体指:通过某种方法(如WFP驱动封包拦截)使特定的域名无法获取正确的IP地址,从而达到阻止特定域名网络访问的目的。
[0003]因此,如何防止网络访问被DNS屏蔽是本领域技术人员亟需解决的问题。

技术实现思路

[0004]有鉴于此,本专利技术的目的是提供一种防止网络访问被DNS屏蔽的方法,其可以避免被DNS屏蔽,实现正常的网络访问。
[0005]为了实现上述目的,本专利技术采用如下技术方案:
[0006]一种防止网络访问被DNS屏蔽的方法,包括以下步骤:
[0007]S1:在网络访问前,挂钩GetAddrInfoW函数,并将所述GetAddrInfoW函数替换为自定义函数;
[0008]S2:网络访问时,所述自定义函数代替所述GetAddrInfoW函数实现待访问网络域名的域名解析,以获得所述待访问网络域名的真正IP值,避免网络访问被DNS屏蔽。
[0009]优选的,S2进一步包括以下步骤:
[0010]S21:所述自定义函数判断所述待访问网络域名是否属于预设保护域名,是则执行S22,否则执行S23;
[0011]S22:调用域名解析公共接口,对所述待访网络域名进行域名解析,获得所述待访问网络域名的真正IP值;返回所述真正IP值,实现待访问网络的正常访问;
[0012]S23:调用GetAddrInfoW函数,对所述待访网络问域名进行DNS解析。
[0013]优选的,所述GetAddrInfoW函数属于Windows Socket API,进行http/https网络访问时,系统底层自动调用GetAddrInfoW函数进行DNS解析。
[0014]优选的,所述自定义函数和所述GetAddrInfoW函数包括相同的参数。
[0015]优选的,所述自定义函数包括以下参数:域名参数pNodeName和结果参数ppResult;
[0016]所述域名参数pNodeName用于接收待访问网络域名;
[0017]所述结果参数ppResult用于返回自定义函数解析出的真正IP值。
[0018]优选的,所述预设保护域名为内置固定的N个域名,其中,N>=1。
[0019]优选的,S22获得的真正IP值通过所述GetAddrInfoW函数返回。
[0020]优选的,S22获得的真正IP值通过所述自定义函数返回。
[0021]经由上述的技术方案可知,与现有技术相比,本专利技术公开提供了一种提供防止网
络访问被DNS屏蔽的方法,其可以有效避免被DNS屏蔽,实现正常的网络访问(即待访问域名可获得正确的IP地址)。
附图说明
[0022]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0023]图1为本专利技术提供的防止网络访问被DNS屏蔽的方法流程图;
[0024]图2为本专利技术提供的S2的具体流程图.
具体实施方式
[0025]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0026]本专利技术实施例公开了一种防止网络访问被DNS屏蔽的方法,包括以下步骤:
[0027]S1:在网络访问前,挂钩GetAddrInfoW函数,并将所述GetAddrInfoW函数替换为自定义函数;
[0028]在本实施例中,自定义函数被定义为MyGetAddrInfoW;
[0029]S2:网络访问时,所述自定义函数MyGetAddrInfoW代替所述GetAddrInfoW函数实现待访问网络域名的域名解析,以获得所述待访问网络域名的真正IP值,避免网络访问被DNS屏蔽。
[0030]进一步的,S2还包括以下步骤:
[0031]S21:所述自定义函数MyGetAddrInfoW判断所述待访问网络域名是否属于预设保护域名,是则执行S22,否则执行S23;
[0032]S22:调用域名解析公共接口,对所述待访网络域名进行域名解析,获得所述待访问网络域名的真正IP值;返回所述真正IP值,实现待访问网络的正常访问;
[0033]进一步的,所述域名解析公共接口包括:
[0034]https://site.ip138.com/domain/read.do?Domain=;
[0035]http://ip

api.com/json/{domain}等等。
[0036]S23:调用GetAddrInfoW函数,对所述待访网络问域名进行DNS解析。
[0037]进一步的,所述GetAddrInfoW函数属于Windows Socket API,进行http/https网络访问时,系统底层自动调用GetAddrInfoW函数进行DNS解析。
[0038]进一步的,所述自定义函数MyGetAddrInfoW和所述GetAddrInfoW函数包括相同的参数。
[0039]进一步的,所述自定义函数MyGetAddrInfoW包括以下参数:域名参数pNodeName和结果参数ppResult;
[0040]所述域名参数pNodeName用于接收待访问网络域名;
[0041]所述结果参数ppResult用于返回自定义函数MyGetAddrInfoW解析出的真正IP值。
[0042]进一步的,所述预设保护域名为内置固定的N个域名,其中,N>=1。
[0043]进一步的,S22获得的真正IP值通过所述GetAddrInfoW函数返回。
[0044]进一步的,S22获得的真正IP值通过所述自定义函数MyGetAddrInfoW返回。
[0045]在实际应用中:当我们使用wininet库InternetOpenUrl函数进行http/https网络访问时,系统底层会调用GetAddrInfoW这个API进行DNS解析,如果有程序在驱动层对这个域名解析过程进行了处理,那GetAddrInfoW这个API返回的结果就可能是不正常的,这时网络访问就无法正常进行,但因为我们已替换成我们预设的MyGetAddrInfoW,就可以解析获得正确的IP值,从而保证了网络访问的正常本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种防止网络访问被DNS屏蔽的方法,其特征在于,包括以下步骤:S1:在网络访问前,挂钩GetAddrInfoW函数,并将所述GetAddrInfoW函数替换为自定义函数;S2:网络访问时,所述自定义函数代替所述GetAddrInfoW函数实现待访问网络域名的域名解析,以获得所述待访问网络域名的真正IP值,避免网络访问被DNS屏蔽。2.根据权利要求1所述的防止网络访问被DNS屏蔽的方法,其特征在于,S2进一步包括以下步骤:S21:所述自定义函数判断所述待访问网络域名是否属于预设保护域名,是则执行S22,否则执行S23;S22:调用域名解析公共接口,对所述待访网络域名进行域名解析,获得所述待访问网络域名的真正IP值;返回所述真正IP值,实现待访问网络的正常访问;S23:调用GetAddrInfoW函数,对所述待访网络问域名进行DNS解析。3.根据权利要求1所述的防止网络访问被DNS屏蔽的方法,其特征在于,所述GetAddrInfoW函数属于Windows Socket API,进...

【专利技术属性】
技术研发人员:孟海彬
申请(专利权)人:云袭网络技术河北有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1