处理dns查询请求的方法及装置制造方法

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

【技术领域】
[0001] 本发明涉及数据处理领域,特别涉及一种处理DNS查询请求的方法及装置。

【背景技术】
[0002] 随着科学技术飞速的发展,各种终端不断的丰富并方便了大众生活。由于利用终 端处理信息具有方便快捷、节省资源等优势,使得终端成为用户的生活或工作中不可或缺 的一部分。实际应用中,智能手机、笔记本电脑、平板电脑和台式电脑等终端已广泛应用于 人们的日常生活中。并且,终端内可以安装各种客户端软件,例如:即时通讯软件、网购软 件、应用市场软件、WIFI共享软件等。
[0003] 其中,通过在安装有无线网卡的终端(例如:台式电脑、笔记本电脑等)中安装 WIFI共享软件,能够将该终端作为热点终端,以起到无线路由器的作用,从而使得手持终端 (例如:智能手机、平板电脑等)可以利用该无线路由器进行上网。
[0004] 现有技术中,手持终端会通过安装有wifi共享软件的热点终端获得所访问域名的 DNS解析结果,进而基于所获得的DNS解析结果进行访问操作。具体的,手持终端发送的包 含DNS查询请求的数据包在经过热点终端的网络驱动后,将依次经过会话层、表示层和应 用层的层层处理,最终WIFI共享软件才能够获得该DNS查询请求,进而对DNS查询请求进 行后续的处理。这种层层处理的机制无疑较为耗时,导致处理DNS查询请求的效率较低,最 终使得用户的使用体验较低。
[0005] 并且,现有技术中,WIFI共享软件对DNS查询请求进行处理时,每次均需要向本地 网络配置信息所给出的至少一个DNS服务器请求相应的DNS解析结果,由于受到网络环境 的限制,这无疑也会降低处理DNS查询请求的效率。


【发明内容】

[0006] 基于上述问题,本发明实施例公开了一种处理DNS查询请求的方法及装置,以提 高处理DNS查询请求的效率。技术方案如下:
[0007] 第一方面,本发明实施例提供了一种处理DNS查询请求的方法,包括:
[0008] 获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS查询 请求;其中,所述转发驱动在监听到由所述网卡驱动处理完成的且目的端口为预设端口的 由手持终端发出的数据包后,对所述数据包进行关于会话层到应用层的数据剥离处理,从 而得到携带有待解析的目标域名的DNS查询请求;
[0009] 判断所述目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映射 记录中,如果是,根据所述历史映射记录确定所述目标域名对应的目标DNS解析结果,并向 所述手持终端反馈所述目标域名所对应的目标DNS解析结果;如果否,
[0010] 向本地网络配置信息所给出的至少一个第一类DNS服务器请求所述目标域名的 目标DNS解析结果;
[0011] 接收所述至少一个第一类DNS服务器反馈的第一请求结果;
[0012] 当所述接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结 果时,将所述不属于无效的DNS解析结果的第一请求结果确定为所述目标域名对应的目标 DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名 与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
[0013] 可选的,本发明实施例所提供的一种处理DNS查询请求的方法,还包括:
[0014] 当所接收到的第一请求结果均属于无效的DNS解析结果时,向预设的至少一个作 为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;
[0015] 接收所述至少一个第二类DNS服务器反馈的第二请求结果;
[0016] 如果所接收到的第二请求结果中存在不属于无效的DNS解析结果的第二请求结 果,则将所述不属于无效的DNS解析结果的第二请求结果确定为所述目标域名对应的目标 DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以及将关于所述目标域名 与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
[0017] 可选的,本发明实施例所提供的一种处理DNS查询请求的方法,还包括:
[0018] 当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射 记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS 解析结果之后或同时,
[0019] 向所述至少一个第一类DNS服务器请求所述目标域名对应的目标DNS解析结果;
[0020] 接收所述至少一个第一类DNS服务器反馈的第三请求结果;
[0021] 如果所接收到的第三请求结果中存在不属于无效的DNS解析结果的第三请求结 果且所述不属于无效的DNS解析结果的第三请求结果与所缓存的所述目标域名对应的当 前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不 属于无效的DNS解析结果的第三请求结果,以保证:再次接收到所述手持终端发送关于所 述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标 DNS解析结果。
[0022] 可选的,本发明实施例所提供的一种处理DNS查询请求的方法,还包括:
[0023] 当判断出所述目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射 记录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS 解析结果之后或同时,
[0024] 向所述至少一个第一类DNS服务器请求所述目标域名的目标DNS解析结果;
[0025] 接收所述至少一个第一类DNS服务器反馈的第四请求结果;
[0026] 如果所接收到的第四请求结果中存在不属于无效的DNS解析结果的第四请求结 果且所述不属于无效的DNS解析结果的第四请求结果与所缓存的所述目标域名对应的当 前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不 属于无效的DNS解析结果的第四请求结果,以保证:再次接收到所述手持终端发送关于所 述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标 DNS解析结果;
[0027] 如果所接收到的第四请求结果均属于无效的DNS解析结果,向所述至少一个第二 类DNS服务器请求目标域名的目标DNS解析结果;
[0028] 接收所述至少一个第二类DNS服务器反馈的第五请求结果;
[0029] 如果所接收到的第五请求结果中存在不属于无效的DNS解析结果的第五请求结 果且所述不属于无效的DNS解析结果的第五请求结果与所缓存的所述目标域名对应的当 前的目标DNS解析结果不同,则将所述目标域名所对应的目标DNS解析结果更新为所述不 属于无效的DNS解析结果的第五请求结果,以保证:再次接收到所述手持终端发送关于所 述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域名所对应的更新后的目标 DNS解析结果。
[0030] 可选的,所述无效的DNS解析结果,包括:
[0031] 表明查询失败的结果或内容为空的结果。
[0032] 可选的,所述预设端口为端口 53。
[0033] 第二方面,本发明实施例还提供了一种处理DNS查询请求的装置,包括:
[0034] DNS查询请求获得模块,用于获得关联到网卡驱动的转发驱动所转发的携带有待 解析的目标域名的DNS查询请求;其中,所述转发驱动在监听到由所述网卡驱动处理完成 的且目的端口为预设端口的由手持终端发出的数据包后,对所述数据包进行关于会话层到 应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求;
[0035] 判断模块,用于判断所述目标域名是否存在于预先缓存的关于域名与DNS解析结 果的历史映射记录中,如果是,触发第一解析结果处理模块;如果否,触发本地请求模块;
[0036] 所述第一解析结果处理模块,用于根据所述历史映射记录确定所述目标域名对应 的目标DNS解析结果,并向所述手持终端反馈所述目标域名所对应的目标DNS解析结果; [0037] 所述本地请求模块,用于向本地网络配置信息所给出的至少一个第一类DNS服务 器请求所述目标域名的目标DNS解析结果;
[0038] 第一请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第一请 求结果;
[0039] 第二解析结果处理模块,用于当所述接收到的第一请求结果中存在不属于无效的 DNS解析结果的第一请求结果时,将所述不属于无效的DNS解析结果的第一请求结果确定 为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终 端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存 处理。
[0040] 可选的,本发明实施例所提供的一种处理DNS查询请求的装置,还包括:
[0041] 外网请求模块,用于当所接收到的第一请求结果均属于无效的DNS解析结果时, 向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;
[0042] 第二请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第二请 求结果;
[0043] 第三解析结果处理模块,用于如果所接收到的第二请求结果中存在不属于无效的 DNS解析结果的第二请求结果,则将不属于无效的DNS解析结果的第二请求结果确定为所 述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以 及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
[0044] 可选的,本发明实施例所提供的一种处理DNS查询请求的装置,还包括:
[0045] 第一重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与 DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标 域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所述 目标域名对应的目标DNS解析结果;
[0046] 第三请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第三请 求结果;
[0047] 第四解析结果处理模块,用于如果所接收到的第三请求结果中存在不属于无效的 DNS解析结果的第三请求结果且所述不属于无效的DNS解析结果的第三请求结果与所缓 存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标 DNS解析结果更新为所述不属于无效的DNS解析结果的第三请求结果,以保证:再次接收到 所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域 名所对应的更新后的目标DNS解析结果。
[0048] 可选的,本发明实施例所提供的一种处理DNS查询请求的装置,还包括:
[0049] 第二重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与 DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标 域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所述 目标域名的目标DNS解析结果;
[0050] 第四请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第四请 求结果;
[0051] 第五解析结果处理模块,用于如果所接收到的第四请求结果中存在不属于无效的 DNS解析结果的第四请求结果且所述不属于无效的DNS解析结果的第四请求结果与所缓 存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标 DNS解析结果更新为所述不属于无效的DNS解析结果的第四请求结果,以保证:再次接收到 所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域 名所对应的更新后的目标DNS解析结果;
[0052] 第三重新请求模块,用于如果所接收到的第四请求结果均属于无效的DNS解析结 果,向所述至少一个第二类DNS服务器请求目标域名的目标DNS解析结果;
[0053] 第五请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第五请 求结果;
[0054] 第六解析结果处理模块,用于如果所接收到的第五请求结果中存在不属于无效的 DNS解析结果的第五请求结果且所述不属于无效的DNS解析结果的第五请求结果与所缓 存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标 DNS解析结果更新为所述不属于无效的DNS解析结果的第五请求结果,以保证:再次接收到 所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域 名所对应的更新后的目标DNS解析结果。
[0055] 可选的,所述无效的DNS解析结果,包括:
[0056] 表明查询失败的结果或内容为空的结果。
[0057] 可选的,所述预设端口为端口 53。
[0058] 与现有技术相比,关联到网卡驱动中的转发驱动拦截由网络驱动处理完成的、手 持终端发送的包含DNS查询请求的数据包,并对该数据包进行关于会话层到应用层的数据 剥离处理,从而得到携带有待解析的目标域名的DNS查询请求,进一步的,转发驱动将该携 带有待解析的目标域名的DNS查询请求转发给wifi共享软件;并且,处理DNS查询请求时, 首先基于预先缓存的历史映射记录查找DNS解析结果,在查找不到时向相应的第一类DNS 服务器请求DNS解析结果。可见,本方案有效避免了包含DNS查询请求的数据包经过会话 层、表示层和应用层的层层处理,同时,有效利用了缓存机制,因此,能够有效提高处理DNS 查询请求的效率。

【专利附图】

【附图说明】
[0059] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0060] 图1为本发明实施例所提供的一种处理DNS查询请求的方法的第一种流程图; [0061] 图2为本发明实施例所提供的一种处理DNS查询请求的方法的第二种流程图;
[0062] 图3为本发明实施例所提供的一种处理DNS查询请求的方法的第三种流程图;
[0063] 图4为本发明实施例所提供的一种处理DNS查询请求的装置的结构示意图。

【具体实施方式】
[0064] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0065] 为了清楚起见,首先介绍DNS的相关内容:
[0066] DNS (Domain Name System,域名系统)为因特网上作为域名和IP地址相互映射的 一个分布式数据库,其能够使用户更方便的访问互联网,而不用去记住能够被机器直接读 取的IP地址。其中,通过域名来得到该域名对应的IP地址的过程叫做域名解析。本发明 实施例所述的DNS查询请求即为用于请求域名所对应的IP地址,并且,域名对应的DNS解 析结果即为域名对应的IP地址。
[0067] 为了提高处理DNS查询请求的效率,本发明实施例提高了一种处理DNS查询请求 的方法及装置。
[0068] 下面首先对本发明实施例所提供的一种处理DNS查询请求的方法进行介绍。
[0069] 需要说明的是,本发明实施例所提供的一种处理DNS查询请求的方法应用于热点 终端,其中,所谓热点终端即为具有无线网卡且安装有wifi共享软件的终端,该热点终端通 过运行Wifi共享软件能够作为无线路由器,使得各种手持终端实现联网。
[0070] 并且,实现本发明实施例所提供的一种处理DNS查询请求的方法的功能软件可以 为特定的wifi共享软件。
[0071] 如图1所示,一种处理DNS查询请求的方法,可以包括:
[0072] S101,获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS 查询请求;
[0073] 其中,该转发驱动在监听到由该网卡驱动处理完成的且目的端口为预设端口的由 手持终端发出的数据包后,可以对该数据包进行关于会话层到应用层的数据剥离处理,从 而得到携带有待解析的目标域名的DNS查询请求。其中,该预设端口可以为DNS服务对应 的端口 53。
[0074] 可以理解的是,由于手持终端发送DNS查询请求时会经过应用层、表示层、会话 层、传输层等的层层封装处理;而wifi共享软件能够识别应用层上的数据,为了使得转发 驱动所拦截的包含DNS查询请求的数据包能够被wifi共享软件识别,转发驱动可以对所拦 截到的数据包进行关于会话层到应用层的数据剥离处理,得到携带有待解析的目标域名的 DNS查询请求,进而转发给wifi共享软件处理。
[0075] 需要强调的是,为网卡驱动关联转发驱动的方式可以采用现有技术,而对该数据 包进行关于会话层到应用层的数据剥离处理也可以采用现有技术实现,在此不做赘述。
[0076] S102,判断该目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映 射记录中,如果是,执行S103 ;如果否,执行S104 ;
[0077] 其中,在获得携带有待解析的目标域名的DNS查询请求后,可以判断该目标域名 是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,并根据不同的判断结 果执行不同的操作。具体的,当判断出该目标域名存在于预先缓存的关于域名与DNS解析 结果的历史映射记录中时,表明本次关于目标域名的DNS查询并非首次查询,此时,可以执 行S103 ;而当判断出该目标域名未存在于预先缓存的关于域名与DNS解析结果的历史映射 记录中时,可以执行S104,以向相应的DNS服务器请求该目标域名对应的目标DNS解析结 果。
[0078] 需要说明的是,预先缓存的关于域名与DNS解析结果的历史映射记录中为热点终 端之前所查询到的域名以及该域名所对应的DNS解析结果的映射记录。
[0079] S103,根据该历史映射记录确定该目标域名对应的目标DNS解析结果,并向该手 持终端反馈该目标域名所对应的目标DNS解析结果;
[0080] 当判断出该目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记 录中时,表明本次关于目标域名的DNS查询并非首次查询,此时,可以从预先缓存的关于域 名与DNS解析结果的历史映射记录中,确定该目标域名对应的目标DNS解析结果,并向该手 持终端反馈该目标域名所对应的目标DNS解析结果。
[0081] S104,向本地网络配置信息所给出的至少一个第一类DNS服务器请求该目标域名 的目标DNS解析结果;
[0082] S105,接收至少一个第一类DNS服务器反馈的第一请求结果;
[0083] 当判断出该目标域名不存在于预先缓存的关于域名与DNS解析结果的历史映射 记录中时,可以向本地网络配置信息所给出的至少一个第一类DNS服务器请求该目标域名 的目标DNS解析结果,并接收至少一个第一 DNS服务器反馈的第一请求结果。可以理解的 是,当第一类DNS服务器为两个以上时,可以按照预设的请求顺序依次向不同的第一类DNS 服务器请求,当然,也可以同时向不同的第一类DNS服务器请求,这都是合理的。
[0084] 其中,用户可以配置本地网络配置信息中的至少一个第一类DNS服务器,并且,本 地网络配置信息所给出的第一类DNS服务器可以为局域网内部的DNS服务器,也可以为外 网公用的DNS服务器,这都是合理的。
[0085] S106,当接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结 果时,将不属于无效的DNS解析结果的第一请求结果确定为目标域名对应的目标DNS解析 结果,并将目标DNS解析结果反馈给手持终端,将关于目标域名与目标DNS解析结果的映射 记录作为历史映射记录进行缓存处理。
[0086] 在获得至少一个第一类DNS服务器反馈的第一请求结果后,可以判断所接收到的 第一请求结果中是否存在不属于无效的DNS解析结果,并根据不同的判断结果执行不同的 操作。具体的,当判断出所接收到的第一请求结果均属于无效的DNS解析结果时,即解析失 败,可以向该手持终端反馈无法解析的结果或不作反馈处理,这都是合理的;而当判断出所 接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时,可以将不属 于无效的DNS解析结果的第一请求结果确定为该目标域名对应的目标DNS解析结果,并将 该目标DNS解析结果反馈给该手持终端,以使得手持终端能够基于所获得目标DNS解析结 果实现网络访问;而为了提高后续对该目标域名进行DNS查询的效率,可以将关于该目标 域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
[0087] 具体的,所述无效的DNS解析结果,可以包括:表明查询失败的结果或内容为空的 结果。
[0088] 可以理解的是,对于一个域名而言,其所对应的DNS解析结果为IP地址,例如:对 于域名WWW. baidu. com而言,其对应的DNS解析结果为58. 217. 200. 13,该DNS解析结果为 百度服务器的IP地址。
[0089] 与现有技术相比,关联到网卡驱动中的转发驱动拦截由网络驱动处理完成的、手 持终端发送的包含DNS查询请求的数据包,并对该数据包进行关于会话层到应用层的数据 剥离处理,从而得到携带有待解析的目标域名的DNS查询请求,进一步的,转发驱动将该携 带有待解析的目标域名的DNS查询请求转发给wifi共享软件;并且,处理DNS查询请求时, 首先基于预先缓存的历史映射记录查找DNS解析结果,在查找不到时向相应的第一类DNS 服务器请求DNS解析结果。可见,本方案有效避免了包含DNS查询请求的数据包经过会话 层、表示层和应用层的层层处理,同时,有效利用了缓存机制,因此,能够有效提高处理DNS 查询请求的效率。
[0090] 为了进一步提高手持终端所访问域名的解析成功率,本发明实施例还提供了一种 处理DNS查询请求的方法。
[0091] 需要说明的是,本发明实施例所提供的一种处理DNS查询请求的方法应用于热点 终端,其中,所谓热点终端即为具有无线网卡且安装有wifi共享软件的终端,该热点终端通 过运行Wifi共享软件能够作为无线路由器,使得各种手持终端实现联网。
[0092] 并且,实现本发明实施例所提供的一种处理DNS查询请求的方法的功能软件可以 为特定的wifi共享软件。
[0093] 如图2所示,一种处理DNS查询请求的方法,可以包括:
[0094] S201,获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS 查询请求;
[0095] 其中,该转发驱动在监听到由该网卡驱动处理完成的且目的端口为预设端口的由 手持终端发出的数据包后,可以对该数据包进行关于会话层到应用层的数据剥离处理,从 而得到携带有待解析的目标域名的DNS查询请求。其中,该预设端口可以为DNS服务对应 的端口 53。
[0096] S202,判断该目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映 射记录中,如果是,执行S203 ;如果否,执行S204 ;
[0097] S203,根据该历史映射记录确定该目标域名对应的目标DNS解析结果,并向该手 持终端反馈该目标域名所对应的目标DNS解析结果;
[0098] S204,向本地网络配置信息所给出的至少一个第一类DNS服务器请求该目标域名 的目标DNS解析结果;
[0099] S205,接收至少一个第一类DNS服务器反馈的第一请求结果;
[0100] 本实施例中S201-S205与上述实施例的S101-S105相似,在此不做赘述。
[0101] S206,判断所接收到的第一请求结果是否均属于无效的DNS解析结果,如果是,执 行S207 ;如果否,执行S210 ;
[0102] 在获得至少一个第一类DNS服务器反馈的第一请求结果后,可以判断所接收到的 第一请求结果是否均属于无效的DNS解析结果,并根据不同的判断结果执行不同的操作。 具体的,当判断出所接收到的第一请求结果均属于无效的DNS解析结果时,可以执行S207 ; 而当判断出所接收的第一请求结果中存在不属于无效的DNS解析结果的第一请求结果时, 可以执行S210。
[0103] 具体的,所述无效的DNS解析结果,可以包括:表明查询失败的结果或内容为空的 结果。
[0104] 可以理解的是,对于一个域名而言,其所对应的DNS解析结果为IP地址,例如:对 于域名www. baidu. com而言,其对应的DNS解析结果为58. 217. 200. 13,该DNS解析结果为 百度服务器的IP地址。
[0105] S207,向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标 DNS解析结果;
[0106] S208,接收至少一个第二类DNS服务器反馈的第二请求结果;
[0107] 其中,当判断出所接收到的第一请求结果均属于无效的DNS解析结果时,即解析 失败,可以向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS 解析结果,并接收至少一个第二类DNS服务器反馈的第二请求结果。
[0108] 需要说明的是,该第二类DNS服务器为wifi共享软件内置的外网公用的DNS服务 器,该第二类DNS服务器可以为域名解析功能强大的DNS服务器,即关于域名与DNS解析结 果(IP地址)映射记录的数据库较大。需要说明的是,可以按照预设的请求顺序依次向不 同的第二类DNS服务器请求DNS解析结果,当然,也可以同时向不同的第二类DNS服务器请 求DNS解析结果,这都是合理的。S209,如果所接收到的第二请求结果中存在不属于无效的 DNS解析结果的第二请求结果,则将不属于无效的DNS解析结果的第二请求结果确定为目 标域名对应的目标DNS解析结果,并将目标DNS解析结果反馈给手持终端,以及将关于目标 域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理;
[0109] 其中,当判断出所接收的第二请求结果中存在不属于无效的DNS解析结果的第二 请求结果时,可以将该不属于无效的DNS解析结果的第二请求结果确定为该目标域名对应 的目标DNS解析结果,并将该目标DNS解析结果反馈给该手持终端,以使得手持终端能够基 于所获得目标DNS解析结果实现网络访问;并且,为了提高后续对该目标域名进行DNS查询 的效率,可以将关于该目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓 存处理。
[0110] 可以理解的是,如果所接收到的第二请求结果均属于无效的DNS解析结果,此时, 可以向该手持终端反馈无法解析的结果或不作反馈处理,这都是合理的。
[0111] S210,将不属于无效的DNS解析结果的第一请求结果确定为该目标域名对应的目 标DNS解析结果,并将该目标DNS解析结果反馈给该手持终端;
[0112] S211,将关于该目标域名与目标DNS解析结果的映射记录作为历史映射记录进行 缓存处理。
[0113] 其中,当判断出所接收到的第一请求结果中存在不属于无效的DNS解析结果的第 一请求结果时,可以将该不属于无效的DNS解析结果的第一请求结果确定为该目标域名对 应的目标DNS解析结果,并将该目标DNS解析结果反馈给该手持终端,以使得手持终端能够 基于所获得目标DNS解析结果实现网络访问;而为了提高后续对该目标域名进行DNS查询 的效率,可以将关于该目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓 存处理。
[0114] 与现有技术相比,关联到网卡驱动中的转发驱动拦截由网络驱动处理完成的、手 持终端发送的包含DNS查询请求的数据包,并对该数据包进行关于会话层到应用层的数据 剥离处理,从而得到携带有待解析的目标域名的DNS查询请求,进一步的,转发驱动将该携 带有待解析的目标域名的DNS查询请求转发给wifi共享软件;并且,处理DNS查询请求时, 首先基于预先缓存的历史映射记录查找DNS解析结果,在查找不到时向相应的第一类DNS 服务器请求DNS解析结果。可见,本方案有效避免了包含DNS查询请求的数据包经过会话 层、表示层和应用层的层层处理,同时,有效利用了缓存机制,因此,能够有效提高处理DNS 查询请求的效率。并且,在本地网络配置信息所给出的第一类DNS服务器无法解析出目标 域名时,可以继续向预先设置的外网公用的第二类DNS服务器继续请求该目标域名的目标 DNS解析结果,以此提高了域名的解析成功率。
[0115] 本领域技术人员可以理解的是,预先缓存的域名对应的DNS解析结果通常具有生 命周期,在生命周期结束后,DNS解析结果将变为无效,此时,如果接收到DNS解析结果变为 无效的相应域名的DNS查询请求,则将重新向相应的DNS服务器请求该域名对应的DNS解 析结果。但是,由于网络环境的变化,预先缓存的域名对应的DNS解析结果可能在生命周期 内也会发生变化,因此,为了进一步提高解析结果的可靠性,本发明实施例还提供了一种处 理DNS查询请求的方法。
[0116] 需要说明的是,本发明实施例所提供的一种处理DNS查询请求的方法应用于热点 终端,其中,所谓热点终端即为具有无限网卡且安装有wifi共享软件的终端,该热点终端通 过运行Wifi共享软件能够作为无线路由器,使得各种手持终端实现联网。
[0117] 并且,实现本发明实施例所提供的一种处理DNS查询请求的方法的功能软件可以 为特定的wifi共享软件。
[0118] 如图3所示,一种处理DNS查询请求的方法,可以包括:
[0119] S301,获得关联到网卡驱动的转发驱动所转发的携带有待解析的目标域名的DNS 查询请求;
[0120] 其中,该转发驱动在监听到由该网卡驱动处理完成的且目的端口为预设端口的由 手持终端发出的数据包后,可以对该数据包进行关于会话层到应用层的数据剥离处理,从 而得到携带有待解析的目标域名的DNS查询请求。其中,该预设端口可以为DNS服务对应 的端口 53。
[0121] 本实施例中,S301与S101相似,在此不做赘述。
[0122] S302,判断该目标域名是否存在于预先缓存的关于域名与DNS解析结果的历史映 射记录中,如果是,执行S303 ;如果否,执行S307 ;
[0123] 其中,在获得携带有待解析的目标域名的DNS查询请求后,可以判断该目标域名 是否存在于预先缓存的关于域名与DNS解析结果的历史映射记录中,并根据不同的判断结 果执行不同的操作。具体的,当判断出该目标域名存在于预先缓存的关于域名与DNS解析 结果的历史映射记录中时,表明本次关于目标域名的DNS查询并非首次查询,此时,可以执 行S303 ;而当判断出该目标域名未存在于预先缓存的关于域名与DNS解析结果的历史映射 记录中时,可以执行S307,以向相应的DNS服务器请求该目标域名对应的目标DNS解析结 果。
[0124] 需要说明的是,预先缓存的关于域名与DNS解析结果的历史映射记录中为热点终 端之前所查询到的域名以及该域名所对应的DNS解析结果的映射记录。
[0125] S303,根据该历史映射记录确定该目标域名对应的目标DNS解析结果,并向该手 持终端反馈该目标域名所对应的目标DNS解析结果;
[0126] 当判断出该目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记 录中时,表明本次关于目标域名的DNS查询并非首次查询,此时,可以从预先缓存的关于域 名与DNS解析结果的历史映射记录中,确定该目标域名对应的目标DNS解析结果,并向该手 持终端反馈该目标域名所对应的目标DNS解析结果。
[0127] S304,向至少一个第一类DNS服务器请求目标域名对应的目标DNS解析结果;
[0128] S305,接收至少一个第一类DNS服务器反馈的第三请求结果;
[0129] 为了保证域名解析结果的可靠性,当判断出该目标域名存在于预先缓存的关于域 名与DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出 的目标域名所对应的目标DNS解析结果之后或同时,还可以向该至少一个第一类DNS服务 器请求该目标域名对应的目标DNS解析结果,并接收该至少一个第一类DNS服务器反馈的 第三请求结果。
[0130] 需要强调的是,本实施例中,S304可以在S303之后执行,当然,当判断出该目标域 名存在于预先缓存的关于域名与DNS解析结果的历史映射记录中时,S303与S304可以同 时执行,这也是合理的。
[0131] S306,如果所接收到的第三请求结果中存在不属于无效的DNS解析结果的第三请 求结果且不属于无效的DNS解析结果的第三请求结果与所缓存的目标域名对应的当前的 目标DNS解析结果不同,则将目标域名所对应的目标DNS解析结果更新为不属于无效的DNS 解析结果的第三请求结果;
[0132] 在获得第三请求结果后,如果所接收到的第三请求结果中存在不属于无效的DNS 解析结果的第三请求结果且不属于无效的DNS解析结果的第三请求结果与所缓存的目标 域名对应的当前的目标DNS解析结果不同,表明所缓存的该目标域名对应的DNS解析结果 已无效,此时,可以将该目标域名所对应的目标DNS解析结果更新为不属于无效的DNS解析 结果的第三请求结果,以保证:再次接收到手持终端发送关于目标域名的DNS查询请求后, 向手持终端反馈目标域名所对应的更新后的目标DNS解析结果。
[0133] S307,向本地网络配置信息所给出的至少一个第一类DNS服务器请求该目标域名 的目标DNS解析结果;
[0134] S308,接收至少一个第一类DNS服务器反馈的第一请求结果;
[0135] S309,当接收到的第一请求结果中存在不属于无效的DNS解析结果的第一请求结 果时,将不属于无效的DNS解析结果的第一请求结果确定为目标域名对应的目标DNS解析 结果,并将目标DNS解析结果反馈给手持终端,将关于目标域名与目标DNS解析结果的映射 记录作为历史映射记录进行缓存处理。
[0136] 本实施例中,S307-S309与上述实施例的S104-S106相似,自此不做赘述。
[0137] 与现有技术相比,关联到网卡驱动中的转发驱动拦截由网络驱动处理完成的、手 持终端发送的包含DNS查询请求的数据包,并对该数据包进行关于会话层到应用层的数据 剥离处理,从而得到携带有待解析的目标域名的DNS查询请求,进一步的,转发驱动将该携 带有待解析的目标域名的DNS查询请求转发给wifi共享软件;并且,处理DNS查询请求时, 首先基于预先缓存的历史映射记录查找DNS解析结果,在查找不到时向相应的第一类DNS 服务器请求DNS解析结果。可见,本方案有效避免了包含DNS查询请求的数据包经过会话 层、表示层和应用层的层层处理,同时,有效利用了缓存机制,因此,能够有效提高处理DNS 查询请求的效率。并且,当判断该目标域名存在于预先缓存的关于域名与DNS解析结果的 历史映射记录中时,不仅仅反馈的目标DNS解析结果,而且还重新请求关于目标域名的DNS 解析结果以保证DNS解析结果的可靠性。
[0138] 进一步的,在第二种实施例(S201-S211)所给出方案的基础上,为了提高DNS解析 结果的可靠性,本发明实施例所提供的一种处理DNS查询请求的方法还可以包括 :
[0139] 当判断出该目标域名存在于预先缓存的关于域名与DNS解析结果的历史映射记 录中而向手持终端反馈根据所述历史映射记录所确定出的目标域名所对应的目标DNS解 析结果之后或同时,
[0140] 向至少一个第一类DNS服务器请求目标域名的目标DNS解析结果;
[0141] 接收至少一个第一类DNS服务器反馈的第四请求结果;
[0142] 如果所接收到的第四请求结果中存在不属于无效的DNS解析结果的第四请求结 果且不属于无效的DNS解析结果的第四请求结果与所缓存的目标域名对应的当前的目标 DNS解析结果不同,则将目标域名所对应的目标DNS解析结果更新为不属于无效的DNS解析 结果的第四请求结果,以保证:再次接收到手持终端发送关于所述目标域名的DNS查询请 求后,向手持终端反馈目标域名所对应的更新后的目标DNS解析结果;
[0143] 如果所接收到的第四请求结果均属于无效的DNS解析结果,向至少一个第二类 DNS服务器请求目标域名的目标DNS解析结果;
[0144] 接收至少一个第二类DNS服务器反馈的第五请求结果;
[0145] 如果所接收到的第五请求结果中存在不属于无效的DNS解析结果的第五请求结 果且不属于无效的DNS解析结果的第五请求结果与所缓存的目标域名对应的当前的目标 DNS解析结果不同,则将目标域名所对应的目标DNS解析结果更新为不属于无效的DNS解析 结果的第五请求结果,以保证:再次接收到手持终端发送关于目标域名的DNS查询请求后, 向手持终端反馈所述目标域名所对应的更新后的目标DNS解析结果。
[0146] 进一步的,在第三种实施例(S301-S309)所给出方案的基础上,为了提高解析成 功率,本发明实施例所提供的另一种处理DNS查询请求的方法中,当判断出该第一请求结 果均属于无效的DNS解析结果时,并非向该手持终端反馈无法解析的结果或不作反馈处 理,而是执行如下步骤 :
[0147] 向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解 析结果;接收至少一个第二类DNS服务器反馈的第六请求结果;如果所接收到的第六请求 结果中存在不属于无效的DNS解析结果的第六请求结果,则将不属于无效的DNS解析结果 的第六请求结果确定为目标域名对应的目标DNS解析结果,并将目标DNS解析结果反馈给 手持终端,以及将关于目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓 存处理。
[0148] 相应于上述方法实施例,本发明实施例还提供了一种处理DNS查询请求的装置, 如图4所示,可以包括:
[0149] DNS查询请求获得模块410,用于获得关联到网卡驱动的转发驱动所转发的携带 有待解析的目标域名的DNS查询请求;其中,所述转发驱动在监听到由所述网卡驱动处理 完成的且目的端口为预设端口的由手持终端发出的数据包后,对所述数据包进行关于会话 层到应用层的数据剥离处理,从而得到携带有待解析的目标域名的DNS查询请求;
[0150] 判断模块420,用于判断所述目标域名是否存在于预先缓存的关于域名与DNS解 析结果的历史映射记录中,如果是,触发第一解析结果处理模块430 ;如果否,触发本地请 求模块440 ;
[0151] 所述第一解析结果处理模块430,用于根据所述历史映射记录确定所述目标域名 对应的目标DNS解析结果,并向所述手持终端反馈所述目标域名所对应的目标DNS解析结 果;
[0152] 所述本地请求模块440,用于向本地网络配置信息所给出的至少一个第一类DNS 服务器请求所述目标域名的目标DNS解析结果;
[0153] 第一请求结果接收模块450,用于接收所述至少一个第一类DNS服务器反馈的第 一请求结果;
[0154] 第二解析结果处理模块460,用于当所述接收到的第一请求结果中存在不属于无 效的DNS解析结果的第一请求结果时,将所述不属于无效的DNS解析结果的第一请求结果 确定为所述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手 持终端,以及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行 缓存处理。
[0155] 与现有技术相比,关联到网卡驱动中的转发驱动拦截由网络驱动处理完成的、手 持终端发送的包含DNS查询请求的数据包,并对该数据包进行关于会话层到应用层的数据 剥离处理,从而得到携带有待解析的目标域名的DNS查询请求,进一步的,转发驱动将该携 带有待解析的目标域名的DNS查询请求转发给wifi共享软件;并且,处理DNS查询请求时, 首先基于预先缓存的历史映射记录查找DNS解析结果,在查找不到时向相应的第一类DNS 服务器请求DNS解析结果。可见,本方案有效避免了包含DNS查询请求的数据包经过会话 层、表示层和应用层的层层处理,同时,有效利用了缓存机制,因此,能够有效提高处理DNS 查询请求的效率。
[0156] 更进一步的,基于包括DNS查询请求获得模块410、判断模块420、第一解析结果处 理模块430、本地请求模块440和第二解析结果处理模块460的处理DNS查询请求的装置, 本发明实施例所提供的另一种处理DNS查询请求的装置还可以包括:
[0157] 外网请求模块,用于当所接收到的第一请求结果均属于无效的DNS解析结果时, 向预设的至少一个作为外网公用的第二类DNS服务器请求目标域名的目标DNS解析结果;
[0158] 第二请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第二请 求结果;
[0159] 第三解析结果处理模块,用于如果所接收到的第二请求结果中存在不属于无效的 DNS解析结果的第二请求结果,则将不属于无效的DNS解析结果的第二请求结果确定为所 述目标域名对应的目标DNS解析结果,并将所述目标DNS解析结果反馈给所述手持终端,以 及将关于所述目标域名与目标DNS解析结果的映射记录作为历史映射记录进行缓存处理。
[0160] 更进一步的,基于包括DNS查询请求获得模块410、判断模块420、第一解析结果处 理模块430、本地请求模块440和第二解析结果处理模块460的处理DNS查询请求的装置, 本发明实施例所提供的另一种处理DNS查询请求的装置还可以包括:
[0161] 第一重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与 DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标 域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所述 目标域名对应的目标DNS解析结果;
[0162] 第三请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第三请 求结果;
[0163] 第四解析结果处理模块,用于如果所接收到的第三请求结果中存在不属于无效的 DNS解析结果的第三请求结果且所述不属于无效的DNS解析结果的第三请求结果与所缓 存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标 DNS解析结果更新为所述不属于无效的DNS解析结果的第三请求结果,以保证:再次接收到 所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域 名所对应的更新后的目标DNS解析结果。
[0164] 更进一步的,基于包括DNS查询请求获得模块410、判断模块420、第一解析结果处 理模块430、本地请求模块440、第二解析结果处理模块460、外网请求模块、第二请求结果 接收模块和第三解析结果处理模块的处理DNS查询请求的装置,本发明实施例所提供的另 一种处理DNS查询请求的装置还可以包括:
[0165] 第二重新请求模块,用于当判断出所述目标域名存在于预先缓存的关于域名与 DNS解析结果的历史映射记录中而向手持终端反馈根据所述历史映射记录所确定出的目标 域名所对应的目标DNS解析结果之后或同时,向所述至少一个第一类DNS服务器请求所述 目标域名的目标DNS解析结果;
[0166] 第四请求结果接收模块,用于接收所述至少一个第一类DNS服务器反馈的第四请 求结果;
[0167] 第五解析结果处理模块,用于如果所接收到的第四请求结果中存在不属于无效的 DNS解析结果的第四请求结果且所述不属于无效的DNS解析结果的第四请求结果与所缓 存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标 DNS解析结果更新为所述不属于无效的DNS解析结果的第四请求结果,以保证:再次接收到 所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域 名所对应的更新后的目标DNS解析结果;
[0168] 第三重新请求模块,用于如果所接收到的第四请求结果均属于无效的DNS解析结 果,向所述至少一个第二类DNS服务器请求目标域名的目标DNS解析结果;
[0169] 第五请求结果接收模块,用于接收所述至少一个第二类DNS服务器反馈的第五请 求结果;
[0170] 第六解析结果处理模块,用于如果所接收到的第五请求结果中存在不属于无效的 DNS解析结果的第五请求结果且所述不属于无效的DNS解析结果的第五请求结果与所缓 存的所述目标域名对应的当前的目标DNS解析结果不同,则将所述目标域名所对应的目标 DNS解析结果更新为所述不属于无效的DNS解析结果的第五请求结果,以保证:再次接收到 所述手持终端发送关于所述目标域名的DNS查询请求后,向所述手持终端反馈所述目标域 名所对应的更新后的目标DNS解析结果。
[0171] 具体的,所述无效的DNS解析结果,包括:
[0172] 表明查询失败的结果或内容为空的结果。
[0173] 具体的,所述预设端口为端口 53。
[0174] 对于系统或装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简 单,相关之处参见方法实施例的部分说明即可。
[0175] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实 体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存 在任何这种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要 素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备 所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除 在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0176] 本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中, 这里所称得的存储介质,如:R0M/RAM、磁碟、光盘等。
[0177] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在 本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围 内。
【权利要求】
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。
【文档编号】H04L29/12GK104144231SQ201410416273
【公开日】2014年11月12日 申请日期:2014年8月21日 优先权日:2014年8月21日
【发明者】郑伟鹏, 官金檀 申请人:北京金山安全软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1