处理DNS查询请求的方法及装置.pdf

上传人:111****11 文档编号:526845 上传时间:2018-02-20 格式:PDF 页数:22 大小:2.82MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410416273.4

申请日:

2014.08.21

公开号:

CN104144231A

公开日:

2014.11.12

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 29/12申请日:20140821|||公开

IPC分类号:

H04L29/12

主分类号:

H04L29/12

申请人:

北京金山安全软件有限公司

发明人:

郑伟鹏; 官金檀

地址:

100085 北京市海淀区小营西路33号二层东区

优先权:

专利代理机构:

北京柏杉松知识产权代理事务所(普通合伙) 11413

代理人:

马敬;项京

PDF下载: PDF下载
内容摘要

本发明实施例公开了一种处理DNS查询请求的方法及装置,该方法包括:获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;转发驱动在监听到由网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后进行关于会话层到应用层的数据剥离处理,得到DNS查询请求;判断目标域名是否存在于关于域名与DNS解析结果的历史映射记录中,如果是,向手持终端反馈确定出目标域名所对应的目标DNS解析结果;如果否,基于本地网络配置信息中的第一类DNS服务器请求目标域名的目标DNS解析结果,并在请求到有效的DNS解析结果时反馈给手持终端并保存目标域名与目标DNS解析结果的映射记录。通过本方案提高了处理DNS查询请求的效率。

权利要求书

1.  一种处理DNS查询请求的方法,其特征在于,包括:
获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;其中,所述转发驱动在监听到由所述网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后,对所述数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求;
判断所述目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,如果是,根据所述历史映射记录确定所述目标域名对应的目标DNS解析结果,并向所述手持终端反馈所述目标域名所对应的目标DNS解析结果;如果否,
向本地网络配置信息所给出的至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;
接收所述至少一个第一类DNS服务器反馈的第一请求结果;
当所述接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,将所述不属于无效的DNS解析结果的第一请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。

2.
  根据权利要求1所述的方法,其特征在于,还包括:
当所接收到的第一请求结果均属于无效的DNS解析结果时,向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;
接收所述至少一个第二类DNS服务器反馈的第二请求结果;
如果所接收到的第二请求结果中存在不属于无效的DNS解析结果的第二请求结果,则将所述不属于无效的DNS解析结果的第二请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。

3.
  根据权利要求1所述的方法,其特征在于,还包括:
当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,
向所述至少一个第一类DNS服务器请求所述目标域名对应的目标DNS解析结果;
接收所述至少一个第一类DNS服务器反馈的第三请求结果;
如果所接收到的第三请求结果中存在不属于无效的DNS解析结果的第三请求结果且所述不属于无效的DNS解析结果的第三请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第三请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。

4.
  根据权利要求2所述的方法,其特征在于,还包括:
当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,
向所述至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;
接收所述至少一个第一类DNS服务器反馈的第四请求结果;
如果所接收到的第四请求结果中存在不属于无效的DNS解析结果的第四请求结果且所述不属于无效的DNS解析结果的第四请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第四请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果;
如果所接收到的第四请求结果均属于无效的DNS解析结果,向所述至少一个第二类DNS服务器请求目标域名的目标DNS解析结果;
接收所述至少一个第二类DNS服务器反馈的第五请求结果;
如果所接收到的第五请求结果中存在不属于无效的DNS解析结果的第五请求结果且所述不属于无效的DNS解析结果的第五请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第五请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。

5.
  根据权利要求1-4任意一项所述的方法,其特征在于,所述无效的DNS解析结果,包括:
表明查询失败的结果或内容为空的结果。

6.
  根据权利要求1-4任意一项所述的方法,其特征在于,所述预设端口为端口53。

7.
  一种处理DNS查询请求的装置,其特征在于,包括:
DNS查询请求获得模块,用于获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;其中,所述转发驱动在监听到由所述网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后,对所述数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求;
判断模块,用于判断所述目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,如果是,触发第一解析结果处理模块;如果否,触发本地请求模块;
所述第一解析结果处理模块,用于根据所述历史映射记录确定所述目标域名对应的目标DNS解析结果,并向所述手持终端反馈所述目标域名所对应的目标DNS解析结果;
所述本地请求模块,用于向本地网络配置信息所给出的至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;
第一请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第一请求结果;
第二解析结果处理模块,用于当所述接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,将所述不属于无效的DNS解析结果的第一请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。

8.
  根据权利要求7所述的装置,其特征在于,还包括:
外网请求模块,用于当所接收到的第一请求结果均属于无效的DNS解析结果时,向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;
第二请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第二请求结果;
第三解析结果处理模块,用于如果所接收到的第二请求结果中存在不属于无效的DNS解析结果的第二请求结果,则将不属于无效的DNS解析结果的第二请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。

9.
  根据权利要求7所述的装置,其特征在于,还包括:
第一重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所述目标域名对应的目标DNS解析结果;
第三请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第三请求结果;
第四解析结果处理模块,用于如果所接收到的第三请求结果中存在不属于无效的DNS解析结果的第三请求结果且所述不属于无效的DNS解析结果的第三请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第三请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名 的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。

10.
  根据权利要求8所述的装置,其特征在于,还包括:
第二重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;
第四请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第四请求结果;
第五解析结果处理模块,用于如果所接收到的第四请求结果中存在不属于无效的DNS解析结果的第四请求结果且所述不属于无效的DNS解析结果的第四请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第四请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果;
第三重新请求模块,用于如果所接收到的第四请求结果均属于无效的DNS解析结果,向所述至少一个第二类DNS服务器请求目标域名的目标DNS解析结果;
第五请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第五请求结果;
第六解析结果处理模块,用于如果所接收到的第五请求结果中存在不属于无效的DNS解析结果的第五请求结果且所述不属于无效的DNS解析结果的第五请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第五请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。

11.
  根据权利要求7-10任意一项所述的装置,其特征在于,所述无效的DNS解析结果,包括:
表明查询失败的结果或内容为空的结果。

12.
  根据权利要求7-10任意一项所述的装置,其特征在于,所述预设端口为端口53。

说明书

处理DNS查询请求的方法及装置
技术领域
本发明涉及数据处理领域,特别涉及一种处理DNS查询请求的方法及装置。
背景技术
随着科学技术飞速的发展,各种终端不断的丰富并方便了大众生活。由于利用终端处理信息具有方便快捷、节省资源等优势,使得终端成为用户的生活或工作中不可或缺的一部分。实际应用中,智能手机、笔记本电脑、平板电脑和台式电脑等终端已广泛应用于人们的日常生活中。并且,终端内可以安装各种客户端软件,例如:即时通讯软件、网购软件、应用市场软件、WIFI共享软件等。
其中,通过在安装有无线网卡的终端(例如:台式电脑、笔记本电脑等)中安装WIFI共享软件,能够将该终端作为热点终端,以起到无线路由器的作用,从而使得手持终端(例如:智能手机、平板电脑等)可以利用该无线路由器进行上网。
现有技术中,手持终端会通过安装有wifi共享软件的热点终端获得所访问域名的DNS解析结果,进而基于所获得的DNS解析结果进行访问操作。具体的,手持终端发送的包含DNS查询请求的数据包在经过热点终端的网络驱动后,将依次经过会话层、表示层和应用层的层层处理,最终WIFI共享软件才能够获得该DNS查询请求,进而对DNS查询请求进行后续的处理。这种层层处理的机制无疑较为耗时,导致处理DNS查询请求的效率较低,最终使得用户的使用体验较低。
并且,现有技术中,WIFI共享软件对DNS查询请求进行处理时,每次均需要向本地网络配置信息所给出的至少一个DNS服务器请求相应的DNS解析结果,由于受到网络环境的限制,这无疑也会降低处理DNS查询请求的效率。
发明内容
基于上述问题,本发明实施例公开了一种处理DNS查询请求的方法及装置,以提高处理DNS查询请求的效率。技术方案如下:
第一方面,本发明实施例提供了一种处理DNS查询请求的方法,包括:
获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;其中,所述转发驱动在监听到由所述网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后,对所述数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求;
判断所述目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,如果是,根据所述历史映射记录确定所述目标域名对应的目标DNS解析结果,并向所述手持终端反馈所述目标域名所对应的目标DNS解析结果;如果否,
向本地网络配置信息所给出的至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;
接收所述至少一个第一类DNS服务器反馈的第一请求结果;
当所述接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,将所述不属于无效的DNS解析结果的第一请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
可选的,本发明实施例所提供的一种处理DNS查询请求的方法,还包括:
当所接收到的第一请求结果均属于无效的DNS解析结果时,向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;
接收所述至少一个第二类DNS服务器反馈的第二请求结果;
如果所接收到的第二请求结果中存在不属于无效的DNS解析结果的第二请求结果,则将所述不属于无效的DNS解析结果的第二请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终 端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
可选的,本发明实施例所提供的一种处理DNS查询请求的方法,还包括:
当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,
向所述至少一个第一类DNS服务器请求所述目标域名对应的目标DNS解析结果;
接收所述至少一个第一类DNS服务器反馈的第三请求结果;
如果所接收到的第三请求结果中存在不属于无效的DNS解析结果的第三请求结果且所述不属于无效的DNS解析结果的第三请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第三请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。
可选的,本发明实施例所提供的一种处理DNS查询请求的方法,还包括:
当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,
向所述至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;
接收所述至少一个第一类DNS服务器反馈的第四请求结果;
如果所接收到的第四请求结果中存在不属于无效的DNS解析结果的第四请求结果且所述不属于无效的DNS解析结果的第四请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第四请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果;
如果所接收到的第四请求结果均属于无效的DNS解析结果,向所述至少一个第二类DNS服务器请求目标域名的目标DNS解析结果;
接收所述至少一个第二类DNS服务器反馈的第五请求结果;
如果所接收到的第五请求结果中存在不属于无效的DNS解析结果的第五请求结果且所述不属于无效的DNS解析结果的第五请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第五请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。
可选的,所述无效的DNS解析结果,包括:
表明查询失败的结果或内容为空的结果。
可选的,所述预设端口为端口53。
第二方面,本发明实施例还提供了一种处理DNS查询请求的装置,包括:
DNS查询请求获得模块,用于获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;其中,所述转发驱动在监听到由所述网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后,对所述数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求;
判断模块,用于判断所述目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,如果是,触发第一解析结果处理模块;如果否,触发本地请求模块;
所述第一解析结果处理模块,用于根据所述历史映射记录确定所述目标域名对应的目标DNS解析结果,并向所述手持终端反馈所述目标域名所对应的目标DNS解析结果;
所述本地请求模块,用于向本地网络配置信息所给出的至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;
第一请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的 第一请求结果;
第二解析结果处理模块,用于当所述接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,将所述不属于无效的DNS解析结果的第一请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
可选的,本发明实施例所提供的一种处理DNS查询请求的装置,还包括:
外网请求模块,用于当所接收到的第一请求结果均属于无效的DNS解析结果时,向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;
第二请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第二请求结果;
第三解析结果处理模块,用于如果所接收到的第二请求结果中存在不属于无效的DNS解析结果的第二请求结果,则将不属于无效的DNS解析结果的第二请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
可选的,本发明实施例所提供的一种处理DNS查询请求的装置,还包括:
第一重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所述目标域名对应的目标DNS解析结果;
第三请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第三请求结果;
第四解析结果处理模块,用于如果所接收到的第三请求结果中存在不属于无效的DNS解析结果的第三请求结果且所述不属于无效的DNS解析结果的第三请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结 果的第三请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。
可选的,本发明实施例所提供的一种处理DNS查询请求的装置,还包括:
第二重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;
第四请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第四请求结果;
第五解析结果处理模块,用于如果所接收到的第四请求结果中存在不属于无效的DNS解析结果的第四请求结果且所述不属于无效的DNS解析结果的第四请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第四请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果;
第三重新请求模块,用于如果所接收到的第四请求结果均属于无效的DNS解析结果,向所述至少一个第二类DNS服务器请求目标域名的目标DNS解析结果;
第五请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第五请求结果;
第六解析结果处理模块,用于如果所接收到的第五请求结果中存在不属于无效的DNS解析结果的第五请求结果且所述不属于无效的DNS解析结果的第五请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第五请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。
可选的,所述无效的DNS解析结果,包括:
表明查询失败的结果或内容为空的结果。
可选的,所述预设端口为端口53。
与现有技术相比,关联到网卡驱动中的转发驱动拦截由网络驱动处理完成的、手持终端发送的包含DNS查询请求的数据包,并对该数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求,进一步的,转发驱动将该携带有待解析的目标域名的DNS查询请求转发给wifi共享软件;并且,处理DNS查询请求时,首先基于预先缓存的历史映射记录查找DNS解析结果,在查找不到时向相应的第一类DNS服务器请求DNS解析结果。可见,本方案有效避免了包含DNS查询请求的数据包经过会话层、表示层和应用层的层层处理,同时,有效利用了缓存机制,因此,能够有效提高处理DNS查询请求的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种处理DNS查询请求的方法的第一种流程图;
图2为本发明实施例所提供的一种处理DNS查询请求的方法的第二种流程图;
图3为本发明实施例所提供的一种处理DNS查询请求的方法的第三种流程图;
图4为本发明实施例所提供的一种处理DNS查询请求的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了清楚起见,首先介绍DNS的相关内容:
DNS(Domain Name System,域名系统)为因特网上作为域名和IP地址相互映射的一个分布式数据库,其能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址。其中,通过域名来得到该域名对应的IP地址的过程叫做域名解析。本发明实施例所述的DNS查询请求即为用于请求域名所对应的IP地址,并且,域名对应的DNS解析结果即为域名对应的IP地址。
为了提高处理DNS查询请求的效率,本发明实施例提高了一种处理DNS查询请求的方法及装置。
下面首先对本发明实施例所提供的一种处理DNS查询请求的方法进行介绍。
需要说明的是,本发明实施例所提供的一种处理DNS查询请求的方法应用于热点终端,其中,所谓热点终端即为具有无线网卡且安装有wifi共享软件的终端,该热点终端通过运行wifi共享软件能够作为无线路由器,使得各种手持终端实现联网。
并且,实现本发明实施例所提供的一种处理DNS查询请求的方法的功能软件可以为特定的wifi共享软件。
如图1所示,一种处理DNS查询请求的方法,可以包括:
S101,获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;
其中,该转发驱动在监听到由该网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后,可以对该数据包进行关于会话层到应用层的 数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求。其中,该预设端口可以为DNS服务对应的端口53。
可以理解的是,由于手持终端发送DNS查询请求时会经过应用层、表示层、会话层、传输层等的层层封装处理;而wifi共享软件能够识别应用层上的数据,为了使得转发驱动所拦截的包含DNS查询请求的数据包能够被wifi共享软件识别,转发驱动可以对所拦截到的数据包进行关于会话层到应用层的数据剥离处理,得到携带有待解析的目标域名的DNS查询请求,进而转发给wifi共享软件处理。
需要强调的是,为网卡驱动关联转发驱动的方式可以采用现有技术,而对该数据包进行关于会话层到应用层的数据剥离处理也可以采用现有技术实现,在此不做赘述。
S102,判断该目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,如果是,执行S103;如果否,执行S104;
其中,在获得携带有待解析的目标域名的DNS查询请求后,可以判断该目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,并根据不同的判断结果执行不同的操作。具体的,当判断出该目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,表明本次关于目标域名的DNS查询并非首次查询,此时,可以执行S103;而当判断出该目标域名未存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,可以执行S104,以向相应的DNS服务器请求该目标域名对应的目标DNS解析结果。
需要说明的是,预先缓存的关于域名与DNS解析结果的历史映射记录中为热点终端之前所查询到的域名以及该域名所对应的DNS解析结果的映射记录。
S103,根据该历史映射记录确定该目标域名对应的目标DNS解析结果,并向该手持终端反馈该目标域名所对应的目标DNS解析结果;
当判断出该目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,表明本次关于目标域名的DNS查询并非首次查询,此时,可以从预先缓存的关于域名与DNS解析结果的历史映射记录中,确定该目标域名对应的目标DNS解析结果,并向该手持终端反馈该目标域名所对应的目标DNS解析结果。
S104,向本地网络配置信息所给出的至少一个第一类DNS服务器请求该目标域名的目标DNS解析结果;
S105,接收至少一个第一类DNS服务器反馈的第一请求结果;
当判断出该目标域名不存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,可以向本地网络配置信息所给出的至少一个第一类DNS服务器请求该目标域名的目标DNS解析结果,并接收至少一个第一DNS服务器反馈的第一请求结果。可以理解的是,当第一类DNS服务器为两个以上时,可以按照预设的请求顺序依次向不同的第一类DNS服务器请求,当然,也可以同时向不同的第一类DNS服务器请求,这都是合理的。
其中,用户可以配置本地网络配置信息中的至少一个第一类DNS服务器,并且,本地网络配置信息所给出的第一类DNS服务器可以为局域网内部的DNS服务器,也可以为外网公用的DNS服务器,这都是合理的。
S106,当接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,将不属于无效的DNS解析结果的第一请求结果确定为目标域名对应的目标DNS解析结果,并将目标DNS解析结果反馈给手持终端,将关于目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
在获得至少一个第一类DNS服务器反馈的第一请求结果后,可以判断所接收到的第一请求结果中是否存在不属于无效的DNS解析结果,并根据不同的判断结果执行不同的操作。具体的,当判断出所接收到的第一请求结果均属于无效的DNS解析结果时,即解析失败,可以向该手持终端反馈无法解析的结果或不作反馈处理,这都是合理的;而当判断出所接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,可以将不属于无效的DNS解析结果的第一请求结果确定为该目标域名对应的目标DNS解析结果,并将该目标DNS解析结果反馈给该手持终端,以使得手持终端能够基于所获得目标DNS解析结果实现网络访问;而为了提高后续对该目标域名进行DNS查询的效率,可以将关于该目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
具体的,所述无效的DNS解析结果,可以包括:表明查询失败的结果或内容为空的结果。
可以理解的是,对于一个域名而言,其所对应的DNS解析结果为IP地址,例如:对于域名www.baidu.com而言,其对应的DNS解析结果为58.217.200.13,该DNS解析结果为百度服务器的IP地址。
与现有技术相比,关联到网卡驱动中的转发驱动拦截由网络驱动处理完成的、手持终端发送的包含DNS查询请求的数据包,并对该数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求,进一步的,转发驱动将该携带有待解析的目标域名的DNS查询请求转发给wifi共享软件;并且,处理DNS查询请求时,首先基于预先缓存的历史映射记录查找DNS解析结果,在查找不到时向相应的第一类DNS服务器请求DNS解析结果。可见,本方案有效避免了包含DNS查询请求的数据包经过会话层、表示层和应用层的层层处理,同时,有效利用了缓存机制,因此,能够有效提高处理DNS查询请求的效率。
为了进一步提高手持终端所访问域名的解析成功率,本发明实施例还提供了一种处理DNS查询请求的方法。
需要说明的是,本发明实施例所提供的一种处理DNS查询请求的方法应用于热点终端,其中,所谓热点终端即为具有无线网卡且安装有wifi共享软件的终端,该热点终端通过运行wifi共享软件能够作为无线路由器,使得各种手持终端实现联网。
并且,实现本发明实施例所提供的一种处理DNS查询请求的方法的功能软件可以为特定的wifi共享软件。
如图2所示,一种处理DNS查询请求的方法,可以包括:
S201,获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;
其中,该转发驱动在监听到由该网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后,可以对该数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求。其中,该预设端口可以为DNS服务对应的端口53。
S202,判断该目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,如果是,执行S203;如果否,执行S204;
S203,根据该历史映射记录确定该目标域名对应的目标DNS解析结果,并向该手持终端反馈该目标域名所对应的目标DNS解析结果;
S204,向本地网络配置信息所给出的至少一个第一类DNS服务器请求该目标域名的目标DNS解析结果;
S205,接收至少一个第一类DNS服务器反馈的第一请求结果;
本实施例中S201-S205与上述实施例的S101-S105相似,在此不做赘述。
S206,判断所接收到的第一请求结果是否均属于无效的DNS解析结果,如果是,执行S207;如果否,执行S210;
在获得至少一个第一类DNS服务器反馈的第一请求结果后,可以判断所接收到的第一请求结果是否均属于无效的DNS解析结果,并根据不同的判断结果执行不同的操作。具体的,当判断出所接收到的第一请求结果均属于无效的DNS解析结果时,可以执行S207;而当判断出所接收的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,可以执行S210。
具体的,所述无效的DNS解析结果,可以包括:表明查询失败的结果或内容为空的结果。
可以理解的是,对于一个域名而言,其所对应的DNS解析结果为IP地址,例如:对于域名www.baidu.com而言,其对应的DNS解析结果为58.217.200.13,该DNS解析结果为百度服务器的IP地址。
S207,向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;
S208,接收至少一个第二类DNS服务器反馈的第二请求结果;
其中,当判断出所接收到的第一请求结果均属于无效的DNS解析结果时,即解析失败,可以向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果,并接收至少一个第二类DNS服务器反馈的第二请求结果。
需要说明的是,该第二类DNS服务器为wifi共享软件内置的外网公用的DNS服务器,该第二类DNS服务器可以为域名解析功能强大的DNS服务器,即关于域名与DNS解析结果(IP地址)映射记录的数据库较大。需要说明的是,可以按照预设的请求顺序依次向不同的第二类DNS服务器请求DNS解析结果,当然,也可以同时向不同的第二类DNS服务器请求DNS解析结果,这都是合理的。S209,如果所接收到的第二请求结果中存在不属于无效的DNS解析结果的第二请求结果,则将不属于无效的DNS解析结果的第二请求结果确定为目标域名对应的目标DNS解析结果,并将目标DNS解析结果反馈给手持终端,以及将关于目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理;
其中,当判断出所接收的第二请求结果中存在不属于无效的DNS解析结果的第二请求结果时,可以将该不属于无效的DNS解析结果的第二请求结果确定为该目标域名对应的目标DNS解析结果,并将该目标DNS解析结果反馈给该手持终端,以使得手持终端能够基于所获得目标DNS解析结果实现网络访问;并且,为了提高后续对该目标域名进行DNS查询的效率,可以将关于该目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
可以理解的是,如果所接收到的第二请求结果均属于无效的DNS解析结果,此时,可以向该手持终端反馈无法解析的结果或不作反馈处理,这都是合理的。
S210,将不属于无效的DNS解析结果的第一请求结果确定为该目标域名对应的目标DNS解析结果,并将该目标DNS解析结果反馈给该手持终端;
S211,将关于该目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
其中,当判断出所接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,可以将该不属于无效的DNS解析结果的第一请求结果确定为该目标域名对应的目标DNS解析结果,并将该目标DNS解析结果反馈给该手持终端,以使得手持终端能够基于所获得目标DNS解析结果实现网络访问;而为了提高后续对该目标域名进行DNS查询的效率,可以将关于该目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
与现有技术相比,关联到网卡驱动中的转发驱动拦截由网络驱动处理完成的、手持终端发送的包含DNS查询请求的数据包,并对该数据包进行关于会话 层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求,进一步的,转发驱动将该携带有待解析的目标域名的DNS查询请求转发给wifi共享软件;并且,处理DNS查询请求时,首先基于预先缓存的历史映射记录查找DNS解析结果,在查找不到时向相应的第一类DNS服务器请求DNS解析结果。可见,本方案有效避免了包含DNS查询请求的数据包经过会话层、表示层和应用层的层层处理,同时,有效利用了缓存机制,因此,能够有效提高处理DNS查询请求的效率。并且,在本地网络配置信息所给出的第一类DNS服务器无法解析出目标域名时,可以继续向预先设置的外网公用的第二类DNS服务器继续请求该目标域名的目标DNS解析结果,以此提高了域名的解析成功率。
本领域技术人员可以理解的是,预先缓存的域名对应的DNS解析结果通常具有生命周期,在生命周期结束后,DNS解析结果将变为无效,此时,如果接收到DNS解析结果变为无效的相应域名的DNS查询请求,则将重新向相应的DNS服务器请求该域名对应的DNS解析结果。但是,由于网络环境的变化,预先缓存的域名对应的DNS解析结果可能在生命周期内也会发生变化,因此,为了进一步提高解析结果的可靠性,本发明实施例还提供了一种处理DNS查询请求的方法。
需要说明的是,本发明实施例所提供的一种处理DNS查询请求的方法应用于热点终端,其中,所谓热点终端即为具有无限网卡且安装有wifi共享软件的终端,该热点终端通过运行wifi共享软件能够作为无线路由器,使得各种手持终端实现联网。
并且,实现本发明实施例所提供的一种处理DNS查询请求的方法的功能软件可以为特定的wifi共享软件。
如图3所示,一种处理DNS查询请求的方法,可以包括:
S301,获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;
其中,该转发驱动在监听到由该网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后,可以对该数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求。其中,该 预设端口可以为DNS服务对应的端口53。
本实施例中,S301与S101相似,在此不做赘述。
S302,判断该目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,如果是,执行S303;如果否,执行S307;
其中,在获得携带有待解析的目标域名的DNS查询请求后,可以判断该目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,并根据不同的判断结果执行不同的操作。具体的,当判断出该目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,表明本次关于目标域名的DNS查询并非首次查询,此时,可以执行S303;而当判断出该目标域名未存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,可以执行S307,以向相应的DNS服务器请求该目标域名对应的目标DNS解析结果。
需要说明的是,预先缓存的关于域名与DNS解析结果的历史映射记录中为热点终端之前所查询到的域名以及该域名所对应的DNS解析结果的映射记录。
S303,根据该历史映射记录确定该目标域名对应的目标DNS解析结果,并向该手持终端反馈该目标域名所对应的目标DNS解析结果;
当判断出该目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,表明本次关于目标域名的DNS查询并非首次查询,此时,可以从预先缓存的关于域名与DNS解析结果的历史映射记录中,确定该目标域名对应的目标DNS解析结果,并向该手持终端反馈该目标域名所对应的目标DNS解析结果。
S304,向至少一个第一类DNS服务器请求目标域名对应的目标DNS解析结果;
S305,接收至少一个第一类DNS服务器反馈的第三请求结果;
为了保证域名解析结果的可靠性,当判断出该目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,还可以向该至少一个第一类DNS服务器请求该目标域名对应的目标DNS解析结果,并接收该至少一个第一类DNS服务器反馈的第三请求结果。
需要强调的是,本实施例中,S304可以在S303之后执行,当然,当判断出该目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,S303与S304可以同时执行,这也是合理的。
S306,如果所接收到的第三请求结果中存在不属于无效的DNS解析结果的第三请求结果且不属于无效的DNS解析结果的第三请求结果与所缓存的目标域名对应的当前的目标DNS解析结果不同,则将目标域名所对应的目标DNS解析结果更新为不属于无效的DNS解析结果的第三请求结果;
在获得第三请求结果后,如果所接收到的第三请求结果中存在不属于无效的DNS解析结果的第三请求结果且不属于无效的DNS解析结果的第三请求结果与所缓存的目标域名对应的当前的目标DNS解析结果不同,表明所缓存的该目标域名对应的DNS解析结果已无效,此时,可以将该目标域名所对应的目标DNS解析结果更新为不属于无效的DNS解析结果的第三请求结果,以保证:再次接收到手持终端发送关于目标域名的DNS查询请求后,向手持终端反馈目标域名所对应的更新后的目标DNS解析结果。
S307,向本地网络配置信息所给出的至少一个第一类DNS服务器请求该目标域名的目标DNS解析结果;
S308,接收至少一个第一类DNS服务器反馈的第一请求结果;
S309,当接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,将不属于无效的DNS解析结果的第一请求结果确定为目标域名对应的目标DNS解析结果,并将目标DNS解析结果反馈给手持终端,将关于目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
本实施例中,S307-S309与上述实施例的S104-S106相似,自此不做赘述。
与现有技术相比,关联到网卡驱动中的转发驱动拦截由网络驱动处理完成的、手持终端发送的包含DNS查询请求的数据包,并对该数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求,进一步的,转发驱动将该携带有待解析的目标域名的DNS查询请求转发给wifi共享软件;并且,处理DNS查询请求时,首先基于预先缓存的历史映射记录查找DNS解析结果,在查找不到时向相应的第一类DNS服务器请求DNS解析结果。可见,本方案有效避免了包含DNS查询请求的数据包经过会话层、表示层 和应用层的层层处理,同时,有效利用了缓存机制,因此,能够有效提高处理DNS查询请求的效率。并且,当判断该目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,不仅仅反馈的目标DNS解析结果,而且还重新请求关于目标域名的DNS解析结果以保证DNS解析结果的可靠性。
进一步的,在第二种实施例(S201-S211)所给出方案的基础上,为了提高DNS解析结果的可靠性,本发明实施例所提供的一种处理DNS查询请求的方法还可以包括:
当判断出该目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,
向至少一个第一类DNS服务器请求目标域名的目标DNS解析结果;
接收至少一个第一类DNS服务器反馈的第四请求结果;
如果所接收到的第四请求结果中存在不属于无效的DNS解析结果的第四请求结果且不属于无效的DNS解析结果的第四请求结果与所缓存的目标域名对应的当前的目标DNS解析结果不同,则将目标域名所对应的目标DNS解析结果更新为不属于无效的DNS解析结果的第四请求结果,以保证:再次接收到手持终端发送关于所述目标域名的DNS查询请求后,向手持终端反馈目标域名所对应的更新后的目标DNS解析结果;
如果所接收到的第四请求结果均属于无效的DNS解析结果,向至少一个第二类DNS服务器请求目标域名的目标DNS解析结果;
接收至少一个第二类DNS服务器反馈的第五请求结果;
如果所接收到的第五请求结果中存在不属于无效的DNS解析结果的第五请求结果且不属于无效的DNS解析结果的第五请求结果与所缓存的目标域名对应的当前的目标DNS解析结果不同,则将目标域名所对应的目标DNS解析结果更新为不属于无效的DNS解析结果的第五请求结果,以保证:再次接收到手持终端发送关于目标域名的DNS查询请求后,向手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。
进一步的,在第三种实施例(S301-S309)所给出方案的基础上,为了提高解析成功率,本发明实施例所提供的另一种处理DNS查询请求的方法中,当判断出该第一请求结果均属于无效的DNS解析结果时,并非向该手持终端反馈无法解析的结果或不作反馈处理,而是执行如下步骤:
向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;接收至少一个第二类DNS服务器反馈的第六请求结果;如果所接收到的第六请求结果中存在不属于无效的DNS解析结果的第六请求结果,则将不属于无效的DNS解析结果的第六请求结果确定为目标域名对应的目标DNS解析结果,并将目标DNS解析结果反馈给手持终端,以及将关于目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
相应于上述方法实施例,本发明实施例还提供了一种处理DNS查询请求的装置,如图4所示,可以包括:
DNS查询请求获得模块410,用于获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;其中,所述转发驱动在监听到由所述网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后,对所述数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求;
判断模块420,用于判断所述目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,如果是,触发第一解析结果处理模块430;如果否,触发本地请求模块440;
所述第一解析结果处理模块430,用于根据所述历史映射记录确定所述目标域名对应的目标DNS解析结果,并向所述手持终端反馈所述目标域名所对应的目标DNS解析结果;
所述本地请求模块440,用于向本地网络配置信息所给出的至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;
第一请求结果接收模块450,用于接收所述至少一个第一类DNS服务器反馈 的第一请求结果;
第二解析结果处理模块460,用于当所述接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,将所述不属于无效的DNS解析结果的第一请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
与现有技术相比,关联到网卡驱动中的转发驱动拦截由网络驱动处理完成的、手持终端发送的包含DNS查询请求的数据包,并对该数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求,进一步的,转发驱动将该携带有待解析的目标域名的DNS查询请求转发给wifi共享软件;并且,处理DNS查询请求时,首先基于预先缓存的历史映射记录查找DNS解析结果,在查找不到时向相应的第一类DNS服务器请求DNS解析结果。可见,本方案有效避免了包含DNS查询请求的数据包经过会话层、表示层和应用层的层层处理,同时,有效利用了缓存机制,因此,能够有效提高处理DNS查询请求的效率。
更进一步的,基于包括DNS查询请求获得模块410、判断模块420、第一解析结果处理模块430、本地请求模块440和第二解析结果处理模块460的处理DNS查询请求的装置,本发明实施例所提供的另一种处理DNS查询请求的装置还可以包括:
外网请求模块,用于当所接收到的第一请求结果均属于无效的DNS解析结果时,向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;
第二请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第二请求结果;
第三解析结果处理模块,用于如果所接收到的第二请求结果中存在不属于无效的DNS解析结果的第二请求结果,则将不属于无效的DNS解析结果的第二请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的 映射记录作为历史映射记录进行缓存处理。
更进一步的,基于包括DNS查询请求获得模块410、判断模块420、第一解析结果处理模块430、本地请求模块440和第二解析结果处理模块460的处理DNS查询请求的装置,本发明实施例所提供的另一种处理DNS查询请求的装置还可以包括:
第一重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所述目标域名对应的目标DNS解析结果;
第三请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第三请求结果;
第四解析结果处理模块,用于如果所接收到的第三请求结果中存在不属于无效的DNS解析结果的第三请求结果且所述不属于无效的DNS解析结果的第三请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第三请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。
更进一步的,基于包括DNS查询请求获得模块410、判断模块420、第一解析结果处理模块430、本地请求模块440、第二解析结果处理模块460、外网请求模块、第二请求结果接收模块和第三解析结果处理模块的处理DNS查询请求的装置,本发明实施例所提供的另一种处理DNS查询请求的装置还可以包括:
第二重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;
第四请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第四请求结果;
第五解析结果处理模块,用于如果所接收到的第四请求结果中存在不属于无效的DNS解析结果的第四请求结果且所述不属于无效的DNS解析结果的第四请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第四请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果;
第三重新请求模块,用于如果所接收到的第四请求结果均属于无效的DNS解析结果,向所述至少一个第二类DNS服务器请求目标域名的目标DNS解析结果;
第五请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第五请求结果;
第六解析结果处理模块,用于如果所接收到的第五请求结果中存在不属于无效的DNS解析结果的第五请求结果且所述不属于无效的DNS解析结果的第五请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第五请求结果,以保证:再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。
具体的,所述无效的DNS解析结果,包括:
表明查询失败的结果或内容为空的结果。
具体的,所述预设端口为端口53。
对于系统或装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将 一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

处理DNS查询请求的方法及装置.pdf_第1页
第1页 / 共22页
处理DNS查询请求的方法及装置.pdf_第2页
第2页 / 共22页
处理DNS查询请求的方法及装置.pdf_第3页
第3页 / 共22页
点击查看更多>>
资源描述

《处理DNS查询请求的方法及装置.pdf》由会员分享,可在线阅读,更多相关《处理DNS查询请求的方法及装置.pdf(22页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104144231A43申请公布日20141112CN104144231A21申请号201410416273422申请日20140821H04L29/1220060171申请人北京金山安全软件有限公司地址100085北京市海淀区小营西路33号二层东区72发明人郑伟鹏官金檀74专利代理机构北京柏杉松知识产权代理事务所普通合伙11413代理人马敬项京54发明名称处理DNS查询请求的方法及装置57摘要本发明实施例公开了一种处理DNS查询请求的方法及装置,该方法包括获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;转发驱动在监听到由网卡驱动处理完成的且目的端。

2、口为预设端口的由手持终端发出的数据包后进行关于会话层到应用层的数据剥离处理,得到DNS查询请求;判断目标域名是否存在于关于域名与DNS解析结果的历史映射记录中,如果是,向手持终端反馈确定出目标域名所对应的目标DNS解析结果;如果否,基于本地网络配置信息中的第一类DNS服务器请求目标域名的目标DNS解析结果,并在请求到有效的DNS解析结果时反馈给手持终端并保存目标域名与目标DNS解析结果的映射记录。通过本方案提高了处理DNS查询请求的效率。51INTCL权利要求书4页说明书14页附图3页19中华人民共和国国家知识产权局12发明专利申请权利要求书4页说明书14页附图3页10申请公布号CN10414。

3、4231ACN104144231A1/4页21一种处理DNS查询请求的方法,其特征在于,包括获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;其中,所述转发驱动在监听到由所述网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后,对所述数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求;判断所述目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,如果是,根据所述历史映射记录确定所述目标域名对应的目标DNS解析结果,并向所述手持终端反馈所述目标域名所对应的目标DNS解析结果;如果否,向本地网络配置信息所。

4、给出的至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;接收所述至少一个第一类DNS服务器反馈的第一请求结果;当所述接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,将所述不属于无效的DNS解析结果的第一请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。2根据权利要求1所述的方法,其特征在于,还包括当所接收到的第一请求结果均属于无效的DNS解析结果时,向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;。

5、接收所述至少一个第二类DNS服务器反馈的第二请求结果;如果所接收到的第二请求结果中存在不属于无效的DNS解析结果的第二请求结果,则将所述不属于无效的DNS解析结果的第二请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。3根据权利要求1所述的方法,其特征在于,还包括当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所。

6、述目标域名对应的目标DNS解析结果;接收所述至少一个第一类DNS服务器反馈的第三请求结果;如果所接收到的第三请求结果中存在不属于无效的DNS解析结果的第三请求结果且所述不属于无效的DNS解析结果的第三请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第三请求结果,以保证再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。4根据权利要求2所述的方法,其特征在于,还包括当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果。

7、的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,权利要求书CN104144231A2/4页3向所述至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;接收所述至少一个第一类DNS服务器反馈的第四请求结果;如果所接收到的第四请求结果中存在不属于无效的DNS解析结果的第四请求结果且所述不属于无效的DNS解析结果的第四请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第四请求结果,以保证再次接收到所述手持终端发送关于所述目标域名的DN。

8、S查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果;如果所接收到的第四请求结果均属于无效的DNS解析结果,向所述至少一个第二类DNS服务器请求目标域名的目标DNS解析结果;接收所述至少一个第二类DNS服务器反馈的第五请求结果;如果所接收到的第五请求结果中存在不属于无效的DNS解析结果的第五请求结果且所述不属于无效的DNS解析结果的第五请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第五请求结果,以保证再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手。

9、持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。5根据权利要求14任意一项所述的方法,其特征在于,所述无效的DNS解析结果,包括表明查询失败的结果或内容为空的结果。6根据权利要求14任意一项所述的方法,其特征在于,所述预设端口为端口53。7一种处理DNS查询请求的装置,其特征在于,包括DNS查询请求获得模块,用于获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;其中,所述转发驱动在监听到由所述网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后,对所述数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求;判断。

10、模块,用于判断所述目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,如果是,触发第一解析结果处理模块;如果否,触发本地请求模块;所述第一解析结果处理模块,用于根据所述历史映射记录确定所述目标域名对应的目标DNS解析结果,并向所述手持终端反馈所述目标域名所对应的目标DNS解析结果;所述本地请求模块,用于向本地网络配置信息所给出的至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;第一请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第一请求结果;第二解析结果处理模块,用于当所述接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,将所述。

11、不属于无效的DNS解析结果的第一请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。8根据权利要求7所述的装置,其特征在于,还包括权利要求书CN104144231A3/4页4外网请求模块,用于当所接收到的第一请求结果均属于无效的DNS解析结果时,向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;第二请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第二请求结果;第三解析结果处理模块,用于如果所接收到的第二请求结果中存在不属于。

12、无效的DNS解析结果的第二请求结果,则将不属于无效的DNS解析结果的第二请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。9根据权利要求7所述的装置,其特征在于,还包括第一重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所述目标域名对应的目标DNS解析结果;第三请求结果接收模块,用于接收所述至少。

13、一个第一类DNS服务器反馈的第三请求结果;第四解析结果处理模块,用于如果所接收到的第三请求结果中存在不属于无效的DNS解析结果的第三请求结果且所述不属于无效的DNS解析结果的第三请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第三请求结果,以保证再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。10根据权利要求8所述的装置,其特征在于,还包括第二重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结。

14、果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;第四请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第四请求结果;第五解析结果处理模块,用于如果所接收到的第四请求结果中存在不属于无效的DNS解析结果的第四请求结果且所述不属于无效的DNS解析结果的第四请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第四请求结果,以保证再次接收到所述手持终端发送关于所述目标。

15、域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果;第三重新请求模块,用于如果所接收到的第四请求结果均属于无效的DNS解析结果,向所述至少一个第二类DNS服务器请求目标域名的目标DNS解析结果;第五请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第五请求结果;第六解析结果处理模块,用于如果所接收到的第五请求结果中存在不属于无效的DNS权利要求书CN104144231A4/4页5解析结果的第五请求结果且所述不属于无效的DNS解析结果的第五请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果。

16、更新为所述不属于无效的DNS解析结果的第五请求结果,以保证再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。11根据权利要求710任意一项所述的装置,其特征在于,所述无效的DNS解析结果,包括表明查询失败的结果或内容为空的结果。12根据权利要求710任意一项所述的装置,其特征在于,所述预设端口为端口53。权利要求书CN104144231A1/14页6处理DNS查询请求的方法及装置技术领域0001本发明涉及数据处理领域,特别涉及一种处理DNS查询请求的方法及装置。背景技术0002随着科学技术飞速的发展,各种终端不断的丰。

17、富并方便了大众生活。由于利用终端处理信息具有方便快捷、节省资源等优势,使得终端成为用户的生活或工作中不可或缺的一部分。实际应用中,智能手机、笔记本电脑、平板电脑和台式电脑等终端已广泛应用于人们的日常生活中。并且,终端内可以安装各种客户端软件,例如即时通讯软件、网购软件、应用市场软件、WIFI共享软件等。0003其中,通过在安装有无线网卡的终端例如台式电脑、笔记本电脑等中安装WIFI共享软件,能够将该终端作为热点终端,以起到无线路由器的作用,从而使得手持终端例如智能手机、平板电脑等可以利用该无线路由器进行上网。0004现有技术中,手持终端会通过安装有WI共享软件的热点终端获得所访问域名的DNS解。

18、析结果,进而基于所获得的DNS解析结果进行访问操作。具体的,手持终端发送的包含DNS查询请求的数据包在经过热点终端的网络驱动后,将依次经过会话层、表示层和应用层的层层处理,最终WIFI共享软件才能够获得该DNS查询请求,进而对DNS查询请求进行后续的处理。这种层层处理的机制无疑较为耗时,导致处理DNS查询请求的效率较低,最终使得用户的使用体验较低。0005并且,现有技术中,WIFI共享软件对DNS查询请求进行处理时,每次均需要向本地网络配置信息所给出的至少一个DNS服务器请求相应的DNS解析结果,由于受到网络环境的限制,这无疑也会降低处理DNS查询请求的效率。发明内容0006基于上述问题,本发。

19、明实施例公开了一种处理DNS查询请求的方法及装置,以提高处理DNS查询请求的效率。技术方案如下0007第一方面,本发明实施例提供了一种处理DNS查询请求的方法,包括0008获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;其中,所述转发驱动在监听到由所述网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后,对所述数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求;0009判断所述目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,如果是,根据所述历史映射记录确定所述目标域名对应的目标DNS解析结果,。

20、并向所述手持终端反馈所述目标域名所对应的目标DNS解析结果;如果否,0010向本地网络配置信息所给出的至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;0011接收所述至少一个第一类DNS服务器反馈的第一请求结果;说明书CN104144231A2/14页70012当所述接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,将所述不属于无效的DNS解析结果的第一请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。0013可选的,本发明实施例。

21、所提供的一种处理DNS查询请求的方法,还包括0014当所接收到的第一请求结果均属于无效的DNS解析结果时,向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;0015接收所述至少一个第二类DNS服务器反馈的第二请求结果;0016如果所接收到的第二请求结果中存在不属于无效的DNS解析结果的第二请求结果,则将所述不属于无效的DNS解析结果的第二请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。0017可选的,本发明实施例所提供的一种处理DN。

22、S查询请求的方法,还包括0018当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,0019向所述至少一个第一类DNS服务器请求所述目标域名对应的目标DNS解析结果;0020接收所述至少一个第一类DNS服务器反馈的第三请求结果;0021如果所接收到的第三请求结果中存在不属于无效的DNS解析结果的第三请求结果且所述不属于无效的DNS解析结果的第三请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解。

23、析结果的第三请求结果,以保证再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。0022可选的,本发明实施例所提供的一种处理DNS查询请求的方法,还包括0023当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,0024向所述至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;0025接收所述至少一个第一类DNS服务器反馈的第四请求结果;0026如果所接收到的第四请求结果中存在不属于无效的DN。

24、S解析结果的第四请求结果且所述不属于无效的DNS解析结果的第四请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第四请求结果,以保证再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果;0027如果所接收到的第四请求结果均属于无效的DNS解析结果,向所述至少一个第二类DNS服务器请求目标域名的目标DNS解析结果;0028接收所述至少一个第二类DNS服务器反馈的第五请求结果;说明书CN104144231A3/14页80029如果。

25、所接收到的第五请求结果中存在不属于无效的DNS解析结果的第五请求结果且所述不属于无效的DNS解析结果的第五请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第五请求结果,以保证再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。0030可选的,所述无效的DNS解析结果,包括0031表明查询失败的结果或内容为空的结果。0032可选的,所述预设端口为端口53。0033第二方面,本发明实施例还提供了一种处理DNS查询请求的装置,包。

26、括0034DNS查询请求获得模块,用于获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;其中,所述转发驱动在监听到由所述网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后,对所述数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求;0035判断模块,用于判断所述目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,如果是,触发第一解析结果处理模块;如果否,触发本地请求模块;0036所述第一解析结果处理模块,用于根据所述历史映射记录确定所述目标域名对应的目标DNS解析结果,并向所述手持终端反馈所述目标域。

27、名所对应的目标DNS解析结果;0037所述本地请求模块,用于向本地网络配置信息所给出的至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;0038第一请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第一请求结果;0039第二解析结果处理模块,用于当所述接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,将所述不属于无效的DNS解析结果的第一请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。0040可选的,本发明实施例所提供。

28、的一种处理DNS查询请求的装置,还包括0041外网请求模块,用于当所接收到的第一请求结果均属于无效的DNS解析结果时,向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;0042第二请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第二请求结果;0043第三解析结果处理模块,用于如果所接收到的第二请求结果中存在不属于无效的DNS解析结果的第二请求结果,则将不属于无效的DNS解析结果的第二请求结果确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进。

29、行缓存处理。0044可选的,本发明实施例所提供的一种处理DNS查询请求的装置,还包括0045第一重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标说明书CN104144231A4/14页9域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所述目标域名对应的目标DNS解析结果;0046第三请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第三请求结果;0047第四解析结果处理模块,用于如果所接收到的第三请求结果中存在不属于无效的DNS解析结果的第三请求结果且所述不。

30、属于无效的DNS解析结果的第三请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第三请求结果,以保证再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。0048可选的,本发明实施例所提供的一种处理DNS查询请求的装置,还包括0049第二重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解析结果之后或同时,向所述。

31、至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;0050第四请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第四请求结果;0051第五解析结果处理模块,用于如果所接收到的第四请求结果中存在不属于无效的DNS解析结果的第四请求结果且所述不属于无效的DNS解析结果的第四请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第四请求结果,以保证再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果;0052第。

32、三重新请求模块,用于如果所接收到的第四请求结果均属于无效的DNS解析结果,向所述至少一个第二类DNS服务器请求目标域名的目标DNS解析结果;0053第五请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第五请求结果;0054第六解析结果处理模块,用于如果所接收到的第五请求结果中存在不属于无效的DNS解析结果的第五请求结果且所述不属于无效的DNS解析结果的第五请求结果与所缓存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不属于无效的DNS解析结果的第五请求结果,以保证再次接收到所述手持终端发送关于所述目标域名的DNS查询请求后,。

33、向所述手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。0055可选的,所述无效的DNS解析结果,包括0056表明查询失败的结果或内容为空的结果。0057可选的,所述预设端口为端口53。0058与现有技术相比,关联到网卡驱动中的转发驱动拦截由网络驱动处理完成的、手持终端发送的包含DNS查询请求的数据包,并对该数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求,进一步的,转发驱动将该携说明书CN104144231A5/14页10带有待解析的目标域名的DNS查询请求转发给WI共享软件;并且,处理DNS查询请求时,首先基于预先缓存的历史映射记录查找D。

34、NS解析结果,在查找不到时向相应的第一类DNS服务器请求DNS解析结果。可见,本方案有效避免了包含DNS查询请求的数据包经过会话层、表示层和应用层的层层处理,同时,有效利用了缓存机制,因此,能够有效提高处理DNS查询请求的效率。附图说明0059为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0060图1为本发明实施例所提供的一种处理DNS查询请求的方法的第一种流程图;0061图2为本发明实。

35、施例所提供的一种处理DNS查询请求的方法的第二种流程图;0062图3为本发明实施例所提供的一种处理DNS查询请求的方法的第三种流程图;0063图4为本发明实施例所提供的一种处理DNS查询请求的装置的结构示意图。具体实施方式0064下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0065为了清楚起见,首先介绍DNS的相关内容0066DNSDOMAINNAMESYSTEM,域名系统为因特网。

36、上作为域名和IP地址相互映射的一个分布式数据库,其能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址。其中,通过域名来得到该域名对应的IP地址的过程叫做域名解析。本发明实施例所述的DNS查询请求即为用于请求域名所对应的IP地址,并且,域名对应的DNS解析结果即为域名对应的IP地址。0067为了提高处理DNS查询请求的效率,本发明实施例提高了一种处理DNS查询请求的方法及装置。0068下面首先对本发明实施例所提供的一种处理DNS查询请求的方法进行介绍。0069需要说明的是,本发明实施例所提供的一种处理DNS查询请求的方法应用于热点终端,其中,所谓热点终端即为具有无线网卡且安装。

37、有WI共享软件的终端,该热点终端通过运行WI共享软件能够作为无线路由器,使得各种手持终端实现联网。0070并且,实现本发明实施例所提供的一种处理DNS查询请求的方法的功能软件可以为特定的WI共享软件。0071如图1所示,一种处理DNS查询请求的方法,可以包括0072S101,获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;0073其中,该转发驱动在监听到由该网卡驱动处理完成的且目的端口为预设端口的由说明书CN104144231A106/14页11手持终端发出的数据包后,可以对该数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求。

38、。其中,该预设端口可以为DNS服务对应的端口53。0074可以理解的是,由于手持终端发送DNS查询请求时会经过应用层、表示层、会话层、传输层等的层层封装处理;而WI共享软件能够识别应用层上的数据,为了使得转发驱动所拦截的包含DNS查询请求的数据包能够被WI共享软件识别,转发驱动可以对所拦截到的数据包进行关于会话层到应用层的数据剥离处理,得到携带有待解析的目标域名的DNS查询请求,进而转发给WI共享软件处理。0075需要强调的是,为网卡驱动关联转发驱动的方式可以采用现有技术,而对该数据包进行关于会话层到应用层的数据剥离处理也可以采用现有技术实现,在此不做赘述。0076S102,判断该目标域名是否。

39、存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,如果是,执行S103;如果否,执行S104;0077其中,在获得携带有待解析的目标域名的DNS查询请求后,可以判断该目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,并根据不同的判断结果执行不同的操作。具体的,当判断出该目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,表明本次关于目标域名的DNS查询并非首次查询,此时,可以执行S103;而当判断出该目标域名未存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,可以执行S104,以向相应的DNS服务器请求该目标域名对应的目标DNS解析结果。0。

40、078需要说明的是,预先缓存的关于域名与DNS解析结果的历史映射记录中为热点终端之前所查询到的域名以及该域名所对应的DNS解析结果的映射记录。0079S103,根据该历史映射记录确定该目标域名对应的目标DNS解析结果,并向该手持终端反馈该目标域名所对应的目标DNS解析结果;0080当判断出该目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,表明本次关于目标域名的DNS查询并非首次查询,此时,可以从预先缓存的关于域名与DNS解析结果的历史映射记录中,确定该目标域名对应的目标DNS解析结果,并向该手持终端反馈该目标域名所对应的目标DNS解析结果。0081S104,向本地网络配置信。

41、息所给出的至少一个第一类DNS服务器请求该目标域名的目标DNS解析结果;0082S105,接收至少一个第一类DNS服务器反馈的第一请求结果;0083当判断出该目标域名不存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,可以向本地网络配置信息所给出的至少一个第一类DNS服务器请求该目标域名的目标DNS解析结果,并接收至少一个第一DNS服务器反馈的第一请求结果。可以理解的是,当第一类DNS服务器为两个以上时,可以按照预设的请求顺序依次向不同的第一类DNS服务器请求,当然,也可以同时向不同的第一类DNS服务器请求,这都是合理的。0084其中,用户可以配置本地网络配置信息中的至少一个第一类D。

42、NS服务器,并且,本地网络配置信息所给出的第一类DNS服务器可以为局域网内部的DNS服务器,也可以为外网公用的DNS服务器,这都是合理的。0085S106,当接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结说明书CN104144231A117/14页12果时,将不属于无效的DNS解析结果的第一请求结果确定为目标域名对应的目标DNS解析结果,并将目标DNS解析结果反馈给手持终端,将关于目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。0086在获得至少一个第一类DNS服务器反馈的第一请求结果后,可以判断所接收到的第一请求结果中是否存在不属于无效的DNS解析结果,。

43、并根据不同的判断结果执行不同的操作。具体的,当判断出所接收到的第一请求结果均属于无效的DNS解析结果时,即解析失败,可以向该手持终端反馈无法解析的结果或不作反馈处理,这都是合理的;而当判断出所接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,可以将不属于无效的DNS解析结果的第一请求结果确定为该目标域名对应的目标DNS解析结果,并将该目标DNS解析结果反馈给该手持终端,以使得手持终端能够基于所获得目标DNS解析结果实现网络访问;而为了提高后续对该目标域名进行DNS查询的效率,可以将关于该目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。0087具体的,所述。

44、无效的DNS解析结果,可以包括表明查询失败的结果或内容为空的结果。0088可以理解的是,对于一个域名而言,其所对应的DNS解析结果为IP地址,例如对于域名WWWBAIDUCOM而言,其对应的DNS解析结果为5821720013,该DNS解析结果为百度服务器的IP地址。0089与现有技术相比,关联到网卡驱动中的转发驱动拦截由网络驱动处理完成的、手持终端发送的包含DNS查询请求的数据包,并对该数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求,进一步的,转发驱动将该携带有待解析的目标域名的DNS查询请求转发给WI共享软件;并且,处理DNS查询请求时,首先基于。

45、预先缓存的历史映射记录查找DNS解析结果,在查找不到时向相应的第一类DNS服务器请求DNS解析结果。可见,本方案有效避免了包含DNS查询请求的数据包经过会话层、表示层和应用层的层层处理,同时,有效利用了缓存机制,因此,能够有效提高处理DNS查询请求的效率。0090为了进一步提高手持终端所访问域名的解析成功率,本发明实施例还提供了一种处理DNS查询请求的方法。0091需要说明的是,本发明实施例所提供的一种处理DNS查询请求的方法应用于热点终端,其中,所谓热点终端即为具有无线网卡且安装有WI共享软件的终端,该热点终端通过运行WI共享软件能够作为无线路由器,使得各种手持终端实现联网。0092并且,实。

46、现本发明实施例所提供的一种处理DNS查询请求的方法的功能软件可以为特定的WI共享软件。0093如图2所示,一种处理DNS查询请求的方法,可以包括0094S201,获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询请求;0095其中,该转发驱动在监听到由该网卡驱动处理完成的且目的端口为预设端口的由手持终端发出的数据包后,可以对该数据包进行关于会话层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求。其中,该预设端口可以为DNS服务对应的端口53。说明书CN104144231A128/14页130096S202,判断该目标域名是否存在于预先缓存的关于域名与D。

47、NS解析结果的历史映射记录中,如果是,执行S203;如果否,执行S204;0097S203,根据该历史映射记录确定该目标域名对应的目标DNS解析结果,并向该手持终端反馈该目标域名所对应的目标DNS解析结果;0098S204,向本地网络配置信息所给出的至少一个第一类DNS服务器请求该目标域名的目标DNS解析结果;0099S205,接收至少一个第一类DNS服务器反馈的第一请求结果;0100本实施例中S201S205与上述实施例的S101S105相似,在此不做赘述。0101S206,判断所接收到的第一请求结果是否均属于无效的DNS解析结果,如果是,执行S207;如果否,执行S210;0102在获得至。

48、少一个第一类DNS服务器反馈的第一请求结果后,可以判断所接收到的第一请求结果是否均属于无效的DNS解析结果,并根据不同的判断结果执行不同的操作。具体的,当判断出所接收到的第一请求结果均属于无效的DNS解析结果时,可以执行S207;而当判断出所接收的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,可以执行S210。0103具体的,所述无效的DNS解析结果,可以包括表明查询失败的结果或内容为空的结果。0104可以理解的是,对于一个域名而言,其所对应的DNS解析结果为IP地址,例如对于域名WWWBAIDUCOM而言,其对应的DNS解析结果为5821720013,该DNS解析结果为百度服。

49、务器的IP地址。0105S207,向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;0106S208,接收至少一个第二类DNS服务器反馈的第二请求结果;0107其中,当判断出所接收到的第一请求结果均属于无效的DNS解析结果时,即解析失败,可以向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果,并接收至少一个第二类DNS服务器反馈的第二请求结果。0108需要说明的是,该第二类DNS服务器为WI共享软件内置的外网公用的DNS服务器,该第二类DNS服务器可以为域名解析功能强大的DNS服务器,即关于域名与DNS解析结果IP地址映射记录的数据库较大。需要说明的是,可以按照预设的请求顺序依次向不同的第二类DNS服务器请求DNS解析结果,当然,也可以同时向不同的第二类DNS服务器请求DNS解析结果,这都是合理的。S209,如果所接收到的第二请求结果中存在不属于无效的DNS解析结果的第二请求结果,则将不属于无效的DNS解析结果的第二请求结果确定为目标域名对应的目标DNS解析结果,并将目标DNS解析结果反馈给手持终端,以及将关于目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理;0109其中,当判断出所接收的第二请求结果中存在不属于无效的DNS解析结果的第二请求结果时,可以将该不属于无效的DNS解。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1