专利名称:一种浏览器及其获取dns解析数据的方法
技术领域:
本发明涉及互联网技术领域,具体涉及一种浏览器及其获取DNS (Domain NameSystem,域名系统)解析数据的方法。
背景技术:
目前,浏览器在访问指定的URL (Uniform Resource Locator,统一资源定位符)时,获得该URL的根内容,解析该根内容,建立相应的网络请求。可见,现有方案是等用户输入网址才解析,且下载根URL后,分析HTML(超文本标记语言,Hypertext Markup Language)数据内容,然后才根据需要渲染的对象进行下载。其中,在下载需要渲染的对象之前需要进行解析DNS,然而,DNS解析的时间可能从几个毫秒到100秒之间,所以,当采用现有方案访问一个URL,消耗的时间比较长。然而,引起消耗时间过长的原因主要是过多依 赖于DNS服务器的解析功能,使得浏览器侧地址解析效率低。所以,目前如何脱离对DNS服务器解析功能的依赖,进而提高浏览器侧地址解析效率,成为目前亟待解决的技术问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的浏览器及其获取DNS解析数据的方法。依据本发明的一个方面,提供了一种浏览器获取DNS解析数据的方法,包括启动浏览器,发起对统一资源定位符URL的访问请求;拦截浏览器侧计算机系统的获取地址信息函数,获取所述URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息;将所述获取的各域名与其对应的IP地址信息保存在浏览器侧的DNS解析数据信息中。可选地,本发明所述方法中,所述DNS加速数据信息中以map表的方式存储获取的各域名,以及各域名对应的IP地址信息;并且在获取的各域名包括主域名和各主域名对应的子域名时,所述map表中还建立有各主域名与对应子域名的映射关系。可选地,本发明所述方法中,所述拦截浏览器侧计算机系统的获取地址信息函数时,进一步包括提取所述URL对应的域名,检测浏览器侧的DNS加速数据信息中是否包含所述域名,并在未包含时,获取所述URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息。可选地,本发明所述方法进一步包括当检测到浏览器侧的DNS加速数据信息中包含所述域名时,在所述DNS加速数据信息中获取所述域名对应的IP地址信息,并利用该IP地址信息进行URL访问处理。可选地,本发明所述方法中,所述在DNS加速数据信息中获取所述域名对应的IP地址信息的方式包括
将所述URL对应的域名插入到待加速列表中,并通知队列守护线程;所述队列守护线程创建信号量,并调取所述DNS加速数据信息中所述URL对应域名的IP地址信息,实现对所述域名的解析。可选地,本发明所述方法中,所述获取URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息的方式,进一步包括拦截浏览器侧计算机系统的获取地址信息函数,获取所述主域名和/或所述主域名对应的各子域名、以及所述主域名和/或所述主域名对应的各子域名对应的套接口地址结构;根据所述套接口地址结构,得到所述主域名和/或所述主域名对应的各子域名对应的IP地址信息。
可选地,本发明所述方法中,在所述浏览器退出时,将获取的各域名与其对应的IP地址信息保存在浏览器侧的DNS解析数据信息中。可选地,本发明所述方法还包括向服务器侧发送下载服务器侧生成的DNS加速数据信息的请求消息,或者,接收服务器侧主动推送的服务器侧生成的DNS加速数据信息,并在获取到所述服务器侧生成的DNS加速数据信息时,利用该DNS加速数据信息对浏览器本地的DNS加速数据信息进行更新。根据本发明的另一方面,提供了一种浏览器,包括访问发起模块,用于启动浏览器,发起对URL的访问请求;信息获取模块,用于拦截浏览器侧计算机系统的获取地址信息函数,获取所述URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息;信息存储模块,用于将所述获取的各域名与其对应的IP地址信息保存在浏览器侧的DNS解析数据信息中。可选地,本发明所述浏览器中,所述信息存储模块中,DNS加速数据信息中以map表的方式存储获取的各域名,以及各域名对应的IP地址信息;并且在获取的各域名包括主域名和各主域名对应的子域名时,所述map表中还建立有各主域名与对应子域名的映射关系O可选地,本发明所述浏览器中,所述信息获取模块,进一步用于在拦截浏览器侧计算机系统的获取地址信息函数时,提取所述URL对应的域名,检测浏览器侧的DNS加速数据信息中是否包含所述域名,并在未包含时,获取所述URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息。可选地,本发明所述浏览器中,还包括加速执行模块,用于当所述信息获取模块检测到所述DNS加速数据信息中包含所述域名时,在所述DNS加速数据信息中获取所述域名对应的IP地址信息,并利用该IP地址信息进行URL访问处理。可选地,本发明所述浏览器中,所述加速执行模块,进一步用于将所述URL对应的域名插入到待加速列表中,并通知队列守护线程;通过所述队列守护线程创建信号量,并调取所述DNS加速数据信息中所述URL对应域名的IP地址信息,实现对所述域名的解析。可选地,本发明所述浏览器中,所述信息获取模块,进一步用于拦截浏览器侧计算机系统的获取地址信息函数,获取所述主域名和/或所述主域名对应的各子域名、以及所述主域名和/或所述主域名对应的各子域名对应的套接口地址结构;根据所述套接口地址结构,得到所述主域名和/或所述主域名对应的各子域名对应的IP地址信息。可选地,本发明所述浏览器中,所述信息存储模块,进一步用于在所述浏览器退出时,将获取的各域名与其对应的IP地址信息保存在浏览器侧的DNS解析数据信息中。可选地,本发明所述浏览器中,还包括更新模块,用于向服务器侧发送下载服务器生成的DNS加速数据信息的请求消息,或者,接收服务器侧主动推送的服务器侧生成的DNS加速数据信息,并在获取到所述服务器侧生成的DNS加速数据信息时,利用该DNS加速数据信息对浏览器本地的DNS加速数据信息进行更新。与现有技术相比,本发明有益效果如下 本发明所述技术方案,通过预先对于一些域名解析进行统计获取,形成DNS加速数据信息,该DNS加速数据信息供浏览器侧调用,可以实现网页浏览的加速,该加速处理过程耗时短,提高了 DNS解析效率,从而也实现网页浏览速度的提高。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式
。
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图I为本发明实施例一提供的一种浏览器获取统DNS解析数据的方法的流程图;图2为本发明实施例中建立的map表的映射关系图;图3为本发明实施例中鼠标悬停示意图;图4为本发明实施例三提供的一种浏览器的结构示意图;图5为本发明实施例四提供的一种浏览器获取统DNS解析数据的系统的结构框图。
具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。为了解决现有技术中存在的技术问题,本发明实施例提供一种浏览器及其获取DNS解析数据的方法。本发明通过预先对于一些网站进行DNS查询请求统计,形成DNS加速数据信息,当用户输入网站地址时,通过调用DNS加速数据信息,实现网页浏览加速,提高了 DNS的解析效率。下面通过几个具体实施例对本发明的实现过程进行详细阐述,具体如下
实施例一如图I所示,本发明实施例提供一种浏览器获取DNS解析数据的方法,具体包括以下步骤步骤SIOI,启动浏览器,发起对URL的访问请求;步骤S102,拦截浏览器侧计算机系统的获取地址信息函数,获取所述URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息;优选地,该步骤中,获取所述URL对应的主域名,以及该主域名对应的各子域名;其中,子域名优选为二级子域名。优选地,该步骤中,拦截浏览器侧计算机系统的获取地址信息函数时,进一步包 括提取所述URL对应的域名,检测浏览器侧的DNS加速数据信息中是否包含所述域名,并在未包含时,获取所述URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息。优选地,该步骤中,获取URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息的方式,进一步包括拦截浏览器侧计算机系统的获取地址信息函数(如系统函数getaddrinfoO ),获取所述主域名和/或所述主域名对应的各子域名、以及所述主域名和/或所述主域名对应的各子域名对应的套接口地址结构;根据所述套接口地址结构,得到所述主域名和/或所述主域名对应的各子域名对应的IP地址信息。步骤S103,将所述获取的各域名与其对应的IP地址信息保存在浏览器侧的DNS解析数据信息中。优选地,该步骤中,DNS加速数据信息中以map表的方式存储获取的各域名,以及各域名对应的IP地址信息;并且在获取的各域名包括主域名和各主域名对应的子域名时,所述map表中还建立有各主域名与对应子域名的映射关系。优选地,该步骤中,在所述浏览器退出时,将获取的各域名与其对应的IP地址信息保存在浏览器侧的DNS解析数据信息中。优选地,本发明实施例所述方法中,还包括向服务器侧发送下载服务器侧生成的DNS加速数据信息的请求消息,或者,接收服务器侧主动推送的服务器侧生成的DNS加速数据信息,并在获取到所述服务器侧生成的DNS加速数据信息时,利用该DNS加速数据信息对浏览器本地的DNS加速数据信息进行更新。其中,服务器侧生成DNS加速数据信息的方式包括(I)在预先配置的主域名池内逐一选取主域名,获取选取的主域名对应的子域名、以及主域名与各子域名对应的IP地址信息;(2)保存各所述主域名及其对应的子域名、以及各域名的IP地址信息,生成DNS加速数据信息。优选地,步骤(I)中,获取主域名对应的子域名、以及主域名与各子域名对应的IP地址信息的方式包括(11)在主域名池内逐一选取主域名;
(12)拦截系统函数getaddrinfoO ,获取每个所述主域名对应的子域名、以及所述主域名与各子域名对应的套接口地址结构;(13)根据套接口地址结构,得到主域名和各子域名对应的IP地址信息。优选地,步骤(2)中,保存各所述主域名及其对应的子域名的方式包括建立所述主域名与对应的各子域名间映射关系的map表。进一步地,本发明实施例中,在统计得到DNS加速数据信息后,该DNS加速数据信息可以为后续用户访问某URL提供加速支持。具体表现在步骤I,浏览器启动后,调用DNS加速数据信息;步骤2,浏览器接收用户发起的对某URL的访问请求,解析该访问请求,并提取所述URL对应的域名;
优选地,该步骤中,在提取所述URL对应的域名之前,还包括判断所述URL是否本地已先缓,若未缓存,则提取所述URL对应的域名,执行步骤3 ;若已缓存,不进行DNS加速处理。步骤3,检测DNS加速数据信息中是否包含URL对应的域名,若包含,则获取该域名对应的IP地址信息,并利用该IP地址信息进行访问处理;若不包含,则执行实施例一所述步骤S102和S103 ;该步骤中,检测DNS加速数据信息中是否包含所述URL对应的域名,具体包括判断所述URL对应的域名为主域名还是子域名,若为主域名,则直接在map表中查找该域名;若为子域名,则对该子域名进行分割,得到该子域名对应的主域名,并以该主域名为搜索索弓丨,在map表中查找对应域名。该步骤中,当检测到DNS加速数据信息中包含URL对应的域名时,提取域名对应的IP地址信息的方式,包括将所述URL对应的域名插入到待加速列表中,并通知队列守护线程;所述队列守护线程创建信号量,并调取所述DNS加速数据信息中所述URL对应域名的IP地址信息,实现对所述域名的解析。进一步地,本发明实施例所述方法中,在并发获取多个域名对应的IP地址信息时,利用所述队列守护线程通知预先创建的线程池为获取IP地址信息的各请求任务分配线程,并利用分配的各线程调取所述DNS加速数据信息中的IP地址信息,实现对各域名的解析。进一步地,本发明实施例中,在用户访问某URL对应的网页时,还进行如下的鼠标悬停方案。继续步骤3,具体如下步骤4,当用户浏览访问的URL对应的网页时,检测用户鼠标是否在网页上悬停,若是,获取鼠标悬停位置对应的网页分区DIV元素;步骤5,将所述DIV元素内各URL进行分割,得到各URL对应的域名,并对得到的域名进行去重处理;步骤6,检测DNS加速数据信息中是否包含各所述URL对应的域名,若包含,则提取各域名对应的IP地址信息;步骤7,当用户访问所述DIV元素内的URL时,直接利用提取的IP地址信息进行访问处理。
综上所述,本发明所述技术方案,通过预先对于一些域名进行统计,形成DNS加速数据信息,当该DNS加速数据信息被用户侧浏览器调用后,可以实现网页浏览加速,该加速处理过程耗时短,提高了 DNS加速的效率;另外,本发明所述技术方案,还可以对鼠标悬停处的URL进行加速处理,适用范围广。实施例二本发明实施例提供一种浏览器获取DNS解析数据的方法,该方法是对实施例一所述方法的进一步详细阐述,具体包括I)在浏览器启动后,当用户发起对某个URL的访问请求时,拦截浏览器侧计算机系统的获取地址信息函数,获取所述URL对应的主域名;
2)拦截系统函数getaddrinfoO ,获取所述主域名对应的二级子域名,以及主域名与各二级子域名的IP地址信息。该步骤中,拦截的系统函数为getaddrinfo (const char*nodename, constchar*service,const struct addrinfo氺hints, struct addrinfo氺氺result)函数。其中,nodename :待解析的域名(ASCII格式)!service :包含服务名称或端口的ANSI字符串;hints :网络socket提示数据结构,指明网络协议族、socket类型、协议等;result :解析返回数据结构,用来保存系统解析的数据。如果getaddrinfo函数返回成功,那么由result参数指向的变量已被填入一个指针,它指向的是由其中的ai_next成员串联起来的addrinfo结构链表。可以导致返回多个addrinfo结构的情形有以下两个1,与nodename参数关联的地址有多个,那么适用于所请求地址簇的每个地址都返回一个对应的结构。2,service参数指定的服务支持多个套接口类型,那么每个套接口类型都可能返回一个对应的结构,具体取决于hints结构的ai_socktype成员。本发明实施例,在拦截getaddrinfo函数前,先分配一个hints结构,把它清零后填写需要的字段,再拦截getaddrinfo ()函数,获取相应主域名对应的二级子域名、以及所述主域名与各二级子域名对应的套接口地址结构,再根据套接口地址结构,得到主域名和各二级子域名对应的IP地址信息。本发明实施例利用getaddrinfo ()函数可以将主机名和服务名转换成套接口地址结构的技术特性,获取了主域名池内各主域名对应的二级子域名,以及各域名对应的IP地址信息。3)将获取的主域名及其对应的二级子域名,以及主域名与各二级子域名的IP地址信息保存到DNS加速数据信息中。该步骤中,在保存主域名及其对应的二级子域名时,建立主域名与对应的各二级子域名间映射关系的map表,具体映射关系如图2所不。下面阐述基于DNS加速数据信息进行DNS加速的实现过程1,启动浏览器,调用DNS加速数据信息;2,当浏览器地址栏发生变化时,即用户发起了对某URL的访问请求,解析该访问请求,获取待访问的URL ;
其中,地址栏发生变化是指用户在地址栏输入或由地址栏自动推荐的URL。3,判断待访问的URL是否为系统已经缓存过的URL,若是,说明URL对应的对象未过期,可以直接使用本地系统缓存的信息,此时就不用进行DNS加速处理了 ;若否,则执行步骤4 ;4,分割URL,得到该URL对应的域名,并在DNS加速数据信息中搜索该域名,当搜索到时,执行步骤5 ;若未搜索到,按正常访问流程处理。例如,当用户在浏览网页时,会点击主域名下的二级域名的连接,这时会获取到该二级域名并进行URL的分割,根据上述DNS加速数据信息内的map表,进行分割后的主域名、二级域名的映射关系的查找。5,调用DnsAccelerateO函数,将待加速域名插入到加速列表中。该步骤具体为·DnsAccelerate ()函数调用 Windows 系统函数 QueueUserWorkItemO,通知队列守护线程有域名待加速。队列守护线程调用ParallelGetAddrInfoProc O函数,执行如下操作调用CreateSemaphore函数,创建信号量;调用QueueUserWorkItem(GetAddrlnfoSysProc,&pParseDataArray[indeX],O),解析域名;该函数的调用过程即为在DNS加速数据信息中搜索待加速域名对应的IP地址的过程;等待所有队列中的任务完成。6,当域名加速完成后,获取到待访问URL对应的IP地址信息,利用该IP地址信息进行访问处理;7,当用户浏览所述URL对应的网页时,检测用户鼠标是否在当前浏览的网页上悬停,若是,获取鼠标悬停位置对应的网页分区DIV元素;其中,鼠标悬停示意图如图3所示;8,将所述DIV元素内各URL进行分割,得到各URL对应的域名,并对得到的域名进行去重处理;9,检测DNS加速数据信息中是否包含各所述URL对应的域名,若包含,则提取各域名对应的IP地址信息,并在用户访问所述DIV元素内的URL时,直接利用所述提取的IP地址信息进行访问处理。对于鼠标悬停方案举例说明如下检测鼠标的当前位置,以及鼠标所覆盖在网页元素中的子元素的URL链接。例如鼠标当前处在〈div class=〃nav_2〃><ul><li><a href = ^http://news. sina. com. cn/">〈b> 新闻 </b></a></li><li><a href = 〃http://mil. news. sina. com. cn"> 军事 </a></li><li><a href = ^http://news. sina. com. cn/society/"> 社会 </a></li></ul><ul><li><a href = "http://finance, sina. com. cn/">〈b> 财经 </b></a></li><li><a href = "http://finance, sina. com. cn/stock/"> 股票 </a></li>
<li><a href = 〃http://finance, sina. com. cn/fund/" > 基金 </a>〈/li></ul><ul><li><a href = ^http://tech. sina. com. cn/">〈b> 科技 </b></a></li><li><a href = ^http://mobile, sina. com. cn/"> 手机 </a></li><li><a href = 〃http://digi. sina. com. cn/"> 数码 </a></li></ul></div>。·当鼠标悬停于上述DIV元素中的〈a href = ^http://mobile, sina. com. cn/〃> 上时,会对在该DIV的URL进行DNS的加速处理。悬停在哪个点对应的URL,这里是指<div. ··>··· </div>里的URL去重集合,如news. sina. com. cn ;mil. news. sina. com. cn ;finance. sina. com. cn ;tech. sina. com. cn ;mobile, sina. com. cn ;digi. sina. com. cn。实施例三如图4所示,本发明实施例提供一种浏览器,包括访问发起模块410、信息获取模块420、信息存储模块430 ;其中访问发起模块410,用于启动浏览器,发起对URL的访问请求;信息获取模块420,用于拦截浏览器侧计算机系统的获取地址信息函数,获取所述URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息;优选地,信息获取模块420,进一步用于在拦截浏览器侧计算机系统的获取地址信息函数时,提取所述URL对应的域名,检测浏览器侧的DNS加速数据信息中是否包含所述域名,并在未包含时,获取所述URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息。优选地,信息获取模块420,进一步用于拦截浏览器侧计算机系统的获取地址信息函数,获取所述主域名和/或所述主域名对应的各子域名、以及所述主域名和/或所述主域名对应的各子域名对应的套接口地址结构;根据所述套接口地址结构,得到所述主域名和/或所述主域名对应的各子域名对应的IP地址信息。信息存储模块430,用于将所述获取的各域名与其对应的IP地址信息保存在浏览器侧的DNS解析数据信息中。优选地,信息存储模块430,进一步用于在所述浏览器退出时,将获取的各域名与其对应的IP地址信息保存在浏览器侧的DNS解析数据信息中。其中,所述DNS加速数据信息中以map表的方式存储获取的各域名,以及各域名对应的IP地址信息;并且在获取的各域名包括主域名和各主域名对应的子域名时,所述map表中还建立有各主域名与对应子域名的映射关系。进一步地,本发明实施例所述浏览器还包括加速执行模块440,用于当信息获取模块420检测到所述DNS加速数据信息中包含所述域名时,在所述DNS加速数据信息中获取所述域名对应的IP地址信息,并利用该IP地址信息进行URL访问处理。
优选地,加速执行模块440,进一步用于将所述URL对应的域名插入到待加速列表中,并通知队列守护线程;通过所述队列守护线程创建信号量,并调取所述DNS加速数据信息中所述URL对应域名的IP地址信息,实现对所述域名的解析。进一步地,本发明实施例所述浏览器还包括更新模块450,用于向服务器侧发送下载服务器生成的DNS加速数据信息的请求消息,或者,接收服务器侧主动推送的服务器侧生成的DNS加速数据信息,并在获取到所述服务器侧生成的DNS加速数据信息时,利用该DNS加速数据信息对浏览器本地的DNS加速数据信息进行更新。综上所述,本发明实施例所述浏览器,通过预先对于一些主域名进行统计,形成DNS加速数据信息,当该DNS加速数据信息被用户侧浏览器调用后,可以实现网页浏览加速,该加速处理过程耗时短,提高了 DNS的解析效率。实施例四·如图5所示,本发明实施例还提供一种浏览器获取域名系统DNS解析数据的系统,包括实施例三所述的浏览器,以及服务器。所述浏览器向服务器侧发送下载服务器生成的DNS加速数据信息的请求消息,或者,接收服务器侧主动推送的服务器侧生成的DNS加速数据信息,并在获取到所述服务器侧生成的DNS加速数据信息时,利用该DNS加速数据信息对浏览器本地的DNS加速数据信息进行更新。综上所述,本发明实施例所述系统,通过预先对于一些主域名进行统计,形成DNS加速数据信息,当该DNS加速数据信息被用户侧浏览器调用后,可以实现网页浏览加速,该加速处理过程耗时短,提高了 DNS的解析效率。在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式
的权利要求书由此明确地并入该具体实施方式
,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器、服务器 等设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
权利要求
1.一种浏览器获取域名系统DNS解析数据的方法,包括 启动浏览器,发起对统一资源定位符URL的访问请求; 拦截浏览器侧计算机系统的获取地址信息函数,获取所述URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息; 将所述获取的各域名与其对应的IP地址信息保存在浏览器侧的DNS解析数据信息中。
2.如权利要求I所述的方法,其特征在于,所述DNS加速数据信息中以map表的方式存储获取的各域名,以及各域名对应的IP地址信息;并且在获取的各域名包括主域名和各主域名对应的子域名时,所述map表中还建立有各主域名与对应子域名的映射关系。
3.如权利要求I或2所述的方法,其特征在于,所述拦截浏览器侧计算机系统的获取地址信息函数时,进一步包括 提取所述URL对应的域名,检测浏览器侧的DNS加速数据信息中是否包含所述域名,并在未包含时,获取所述URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息。
4.如权利要求3所述的方法,其特征在于,所述方法进一步包括 当检测到浏览器侧的DNS加速数据信息中包含所述域名时,在所述DNS加速数据信息中获取所述域名对应的IP地址信息,并利用该IP地址信息进行URL访问处理。
5.如权利要求4所述的方法,其特征在于,所述在DNS加速数据信息中获取所述域名对应的IP地址信息的方式包括 将所述URL对应的域名插入到待加速列表中,并通知队列守护线程; 所述队列守护线程创建信号量,并调取所述DNS加速数据信息中所述URL对应域名的IP地址信息,实现对所述域名的解析。
6.如权利要求I所述的方法,其特征在于,所述获取URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息的方式,进一步包括 拦截浏览器侧计算机系统的获取地址信息函数,获取所述主域名和/或所述主域名对应的各子域名、以及所述主域名和/或所述主域名对应的各子域名对应的套接口地址结构; 根据所述套接口地址结构,得到所述主域名和/或所述主域名对应的各子域名对应的IP地址信息。
7.如权利要求I所述的方法,其特征在于,所述方法中,在所述浏览器退出时,将获取的各域名与其对应的IP地址信息保存在浏览器侧的DNS解析数据信息中。
8.如权利要求I所述的方法,其特征在于,所述方法还包括 向服务器侧发送下载服务器侧生成的DNS加速数据信息的请求消息,或者,接收服务器侧主动推送的服务器侧生成的DNS加速数据信息,并在获取到所述服务器侧生成的DNS加速数据信息时,利用该DNS加速数据信息对浏览器本地的DNS加速数据信息进行更新。
9.一种浏览器,包括 访问发起模块,用于启动浏览器,发起对URL的访问请求; 信息获取模块,用于拦截浏览器侧计算机系统的获取地址信息函数,获取所述URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息; 信息存储模块,用于将所述获取的各域名与其对应的IP地址信息保存在浏览器侧的DNS解析数据信息中。
10.如权利要求9所述的浏览器,其特征在于,所述信息存储模块中,DNS加速数据信息中以map表的方式存储获取的各域名,以及各域名对应的IP地址信息;并且在获取的各域名包括主域名和各主域名对应的子域名时,所述map表中还建立有各主域名与对应子域名的映射关系。
11.如权利要求9或10所述的浏览器,其特征在于,所述信息获取模块,进一步用于在拦截浏览器侧计算机系统的获取地址信息函数时,提取所述URL对应的域名,检测浏览器侧的DNS加速数据信息中是否包含所述域名,并在未包含时,获取所述URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息。
12.如权利要求11所述的浏览器,其特征在于,还包括 加速执行模块,用于当所述信息获取模块检测到所述DNS加速数据信息中包含所述域名时,在所述DNS加速数据信息中获取所述域名对应的IP地址信息,并利用该IP地址信息进行URL访问处理。
13.如权利要求12所述的浏览器,其特征在于,所述加速执行模块,进一步用于将所述URL对应的域名插入到待加速列表中,并通知队列守护线程;通过所述队列守护线程创建信号量,并调取所述DNS加速数据信息中所述URL对应域名的IP地址信息,实现对所述域名的解析。
14.如权利要求9所述的浏览器,其特征在于,所述信息获取模块,进一步用于拦截浏览器侧计算机系统的获取地址信息函数,获取所述主域名和/或所述主域名对应的各子域名、以及所述主域名和/或所述主域名对应的各子域名对应的套接口地址结构;根据所述套接口地址结构,得到所述主域名和/或所述主域名对应的各子域名对应的IP地址信息。
15.如权利要求9所述的浏览器,其特征在于,所述信息存储模块,进一步用于在所述浏览器退出时,将获取的各域名与其对应的IP地址信息保存在浏览器侧的DNS解析数据信息中。
16.如权利要求9所述的浏览器,其特征在于,还包括 更新模块,用于向服务器侧发送下载服务器生成的DNS加速数据信息的请求消息,或者,接收服务器侧主动推送的服务器侧生成的DNS加速数据信息,并在获取到所述服务器侧生成的DNS加速数据信息时,利用该DNS加速数据信息对浏览器本地的DNS加速数据信息进行更新。
全文摘要
本发明公开了一种浏览器及其获取DNS解析数据的方法,所述方法包括启动浏览器,发起对统一资源定位符URL的访问请求;拦截浏览器侧计算机系统的获取地址信息函数,获取所述URL对应的主域名和/或该主域名对应的各子域名、以及所述主域名和/或各子域名对应的IP地址信息;将所述获取的各域名与其对应的IP地址信息保存在浏览器侧的DNS解析数据信息中。本发明通过预先对于一些主域名进行统计,形成DNS加速数据信息,当该DNS加速数据信息被用户侧浏览器调用后,可以实现网页浏览加速,该加速处理过程耗时短,提高了DNS加速的效率。
文档编号G06F17/30GK102902787SQ20121037593
公开日2013年1月30日 申请日期2012年9月29日 优先权日2012年9月29日
发明者董斌雁, 任寰 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司