一种DNS域名获取系统及方法技术方案

技术编号:20370106 阅读:30 留言:0更新日期:2019-02-16 20:11
本发明专利技术公开了一种DNS域名获取系统及方法。包括:DNS请求包发送子系统、DNS管理子系统和DNS应答包接收与分析子系统,DNS请求包发送子系统、DNS管理子系统和DNS应答包接收与分析子系统多线程并行工作;DNS请求包发送子系统用于DNS请求数据包的发送与重发;DNS应答包接收与分析子系统用于接收DNS应答包,并判断DNS应答包是否为DNS请求包对应的应答包;DNS管理子系统用于管理域名解析服务的状态值,以及在DNS请求数据包发送后进行计时,根据DNS应答包接收与分析子系统接收到的DNS应答包确定需重发的DNS请求数据包,并当计时到设定时间时,触发DNS请求包发送子系统对需重发的DNS请求数据包进行重新发送。本发明专利技术提供的DNS域名获取系统及方法具有高效、准确的特点。

A DNS Domain Name Acquisition System and Method

The invention discloses a DNS domain name acquisition system and method. Including: DNS request packet sending subsystem, DNS management subsystem and DNS reply packet receiving and analysis subsystem, DNS request packet sending subsystem, DNS management subsystem and DNS reply packet receiving and analysis subsystem multi-threaded parallel work; DNS request packet sending subsystem for DNS request packet sending and retransmitting; DNS reply packet receiving and analysis subsystem for receiving DNS reply packet, and The DNS management subsystem is used to manage the status value of domain name resolution service and to time the DNS request packet after it is sent. The DNS request packet received by the DNS response subsystem is used to determine the DNS request packet to be retransmitted according to the DNS response packet received by the DNS response subsystem. When the time is set, the DNS request packet is triggered to send the subsystem pair. DNS request packets that need to be retransmitted are retransmitted. The DNS domain name acquisition system and method provided by the invention have the characteristics of high efficiency and accuracy.

【技术实现步骤摘要】
一种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请求包,并当数据发送完毕之后,释放发送端口;请求节点插入模块,用于记录发送时间,把由请求包的ID、目的服务器以及发送时间构成的请求节点插入到请求队列队尾。可选的,所述DNS应答包接收与分析子系统包括:网卡监测模块,用于监测网卡上的数据,捕获DNS数据包;解析模块,用于对捕获的DNS数据包进行解析。可选的,所述DNS管理子系统包括:请求队列管理模块,用于管理DNS请求包发送线程的请求节点插入请求队列队尾,用于管理DNS应答包接收与分析线程对请求队列中与应答包对应ID的请求节点的查找与删除,用于管理DNS管理线程对请求队列的每个节点的超时监控;域名服务器管理模块,用于获取设定时间内没有收到DNS应答包的请求节点的域名信息和解析服务器信息,将所述解析服务器的状态值加1,所述域名的发送请求次数加1;重发模块,用于判断没有收到应答包的域名对应的发送请求次数是否大于预设值,如果是,则删除所述域名查询,如果否,则重发。可选的,所述域名服务器管理模块还用于根据各解析服务器的状态值对解析服务器进行排序。可选的,所述系统还包括数据存储子系统,用于对解析后DNS数据包进行存储。本专利技术还提供了一种DNS域名获取方法,所述方法应用于一种服务器域名获取系统,所述系统包括DNS请求包发送子系统、DNS管理子系统和DNS应答包接收与分析子系统,所述DNS请求包发送子系统、DNS管理子系统和DNS应答包接收与分析子系统多线程并行工作,所述方法包括:DNS请求包发送子系统将待查询域名列表中的待查询域名分别封装到查询请求包,得到多个域名查询请求包;DNS请求包发送子系统选择域名解析服务器并将各域名查询请求包多线程并行发送至对应的域名解析服务器;应答接收分析子系统接收应答包,并对所述应答包进行解析;DNS管理子系统判断应答包是否为域名查询请求包对应的应答包;如果是,则DNS管理子系统在重发列表中删除所述应答包对应的域名查询请求包,所述重发列表中包含的域名与所述待查询域名列表中包含的域名相同;DNS管理子系统判断是否将所有域名查询请求包发送完毕,且距发送域名查询请求包的时间到达设定时间;如果是,则DNS请求包发送子系统重新选择域名解析服务器,并对所述重发列表中的域名重新发送。可选的,所述方法还包括:所述DNS管理子系统根据各解析服务器的状态值对解析服务器进行排序;所述DNS请求包发送子系统从解析服务器排序序列中优先选择状态值小的解析服务器。可选的,所述DNS请求包发送子系统选择域名解析服务器,具体包括:所述DNS请求包发送子系统选择多个状态值小于设定值的域名解析服务器。可选的,所述DNS请求包发送子系统重新选择域名解析服务器,具体包括:DNS请求包发送子系统选择状态值小于预设值,且未被选择过的域名解析服务器。根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果:本专利技术提供的DNS域名获取系统及方法,通过异步的主动捕获DNS数据包和主动请求两种方式,实现了高速和高效DNS获取。发送与接收通过DNS管理系统进行调控,使在高速发送查询请求的同时保证了高效性。对于没有收到应答包的查询,采取重发机制,若多次重发没收到应答包删除该域名,提高系统效率。有效的对故障服务器或不工作的服务器进行判断,提高系统的效率。而且,本专利技术对解析服务器列表中的服务器进行排序,对响应较快的服务器排在前面,多使用响应较快的域名服务器,提高了查询的速率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例域名获取系统总体结构框图;图2为本专利技术实施例DNS报文格式图;图3为本专利技术实施例Flags报文格式图;图4为本专利技术实施例Queries格式图;图5为本专利技术实施例OPT-RR结构图;图6为本专利技术实施例RDATA格式图;图7为本专利技术实施例DNS请求发送系统线程图;图8为本专利技术实施例超时监测流程图;图9为本专利技术实施例域名服务器管理流程图;图10为本专利技术实施例重发模块流程图;图11为本专利技术实施例网卡监测模块流程图;图12为本专利技术实施例RR格式图;图13为本专利技术实施例解析存库模块流程图;图14为本专利技术实施例DNS域名获取方法流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的目的是提供一种DNS域名获取系统及方法,具有高效、准确的特点。为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。图1为本专利技术实施例域名获取系统总体结构框图,如图1所示,本专利技术提供的域名获取系统包括:DNS请求包发送系统、DNS管理系统、DNS应答包接收与分析系统和数据存储系统四个子系统组成。系统的本文档来自技高网...

【技术保护点】
1.一种DNS域名获取系统,其特征在于,包括:DNS请求包发送子系统、DNS管理子系统和DNS应答包接收与分析子系统,所述DNS请求包发送子系统、DNS管理子系统和DNS应答包接收与分析子系统多线程并行工作;所述DNS请求包发送子系统用于DNS请求数据包的发送与重发;所述DNS应答包接收与分析子系统用于接收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管理子系统用于管理域名解析服务的状态值,以及在DNS请求数据包发送后进行计时,根据所述DNS应答包接收与分析子系统接收到的DNS应答包确定需重发的DNS请求数据包,并当计时到设定时间时,触发所述DNS请求包发送子系统对需重发的DNS请求数据包进行重新发送。2.根据权利要求1所述的DNS域名获取系统,其特征在于,所述DNS请求包发送子系统包括:读取模块,用于读取待查询域名的数据列表以及域名解析服务器的数据列表;封装模块,用于将读入的域名数据列表中的各待查域名分别封装到DNS请求包;域名解析服务器选取模块,用于选取域名服务器列表中状态值小于设定值的域名解析服务器,记为目的服务器;发送模块,用于所述目的服务器发送DNS请求包,并当数据发送完毕之后,释放发送端口;请求节点插入模块,用于记录发送时间,把由请求包的ID、目的服务器以及发送时间构成的请求节点插入到请求队列队尾。3.根据权利要求1所述的DNS域名获取系统,其特征在于,所述DNS应答包接收与分析子系统包括:网卡监测模块,用于监测网卡上的数据,捕获DNS数据包;解析模块,用于对捕获的DNS数据包进行解析。4.根据权利要求1所述的DNS域名获取系统,其特征在于,所述DNS管理子系统包括:请求队列管理模块,用于管理DNS请求包发送线程的请求节点插入请求队列队尾,用于管理DNS应答包接收与分析线程对请求队列中与应答包对应ID的请求节点的查找与删除,用于管理DNS管理线程对请求队列的每个节点的超时监控;域名服务器管理模块,用于获取设定时间内没有收到DNS应答包的请求节点的域名信息和解析服务器信息,将所述解析服务器的状态值加1,所述域名的发送请求次数加1;重发模块,用于判断没有收到...

【专利技术属性】
技术研发人员:孙红波徐宏金鑫王志强张岩关川江张健毅孙建树张莹毛明
申请(专利权)人:中共中央办公厅电子科技学院
类型:发明
国别省市:北京,11

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

1