著录项信息
专利名称 | 一种访问网站的方法和系统 |
申请号 | CN201210093093.8 | 申请日期 | 2012-03-31 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2012-08-22 | 公开/公告号 | CN102647482A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/12 | IPC分类号 | H;0;4;L;2;9;/;1;2查看分类表>
|
申请人 | 奇智软件(北京)有限公司 | 申请人地址 | 北京市西城区新街口外大街28号D座112室(德胜园区)
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京奇虎科技有限公司,奇智软件(北京)有限公司 | 当前权利人 | 北京奇虎科技有限公司,奇智软件(北京)有限公司 |
发明人 | 董斌雁;孙鹏;任寰 |
代理机构 | 北京润泽恒知识产权代理有限公司 | 代理人 | 苏培华 |
摘要
本申请提供了一种访问网站的方法和装置,涉及网络技术领域。所述方法包括:根据客户端的网页请求中的域名构造第一域名查询请求,并将所述请求发送至第一域名服务器;获取第一域名服务器返回的标识IP地址;所述标识IP地址用于标识所述网页请求中域名对应的目标IP地址是否属于预定IP地址库;根据所述标识IP地址判断出将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址;则根据所述代理服务器对应的IP地址,将所述网页访问请求发送至代理服务器。对于客户端可以通过自身直接访问的网页请求,则不用通过代理服务器访问,而客户端需要通过代理服务器访问的页面才采用代理服务器,降低了代理服务器的负载,提高了代理服务器的性能。
一种访问网站的方法和系统\n技术领域\n[0001] 本申请涉及网络技术领域,特别是涉及一种访问网站的方法和系统。\n背景技术\n[0002] 教育网环境比较复杂,有的高校是全部采用CERNET接入,有的高校采用联通、电信、移动混合接入方式。由于计费和网络本身方面的限制,部分高校存在不能访问国外网站问题。现有技术方案是搭建代理服务器,将浏览器的HTTP访问请求投递给代理服务器。代理服务器对客户端来说是服务器,对服务器端来说是客户端,在实际的客户端和服务器端做中介。\n[0003] 现有技术中,存在两种代理服务器方法:\n[0004] 第一种是,网页代理服务器技术方案:\n[0005] 网页代理服务器英文全称是Web Proxy Server,又称为在线代理服务器。网页代理服务器是一种在网页上运行的代理服务器程序,其不用任何设置,输入网址选择好代理服务器便可以访问。网页代理服务器给客户端提供远程网站上的网页和文件的高速缓存,使客户端可以更加快速安全的浏览远程网站。一些网页代理服务器网站保持每天更新,访问链接速度也是比较快的。网页代理服务器(Web Proxy)原理可以简单的概述为:用户访问-网页代理服务器-目标网站-返回用户。但是基于网页代理服务器的网页模板和协议使用等设置问题,其存在以下缺点:\n[0006] 1)因为网页代理服务器本身就是一个网页,其中存在很多内容,所以使用网页代理服务器会消耗很大的流量,所以提供网页代理服务器的网站很容易出现流量用完或不稳定的状况;另外使用网页代理服务器的速度会比正常的上网慢。\n[0007] 2)基本上各网页代理服务器网站都会刊登广告,更甚者会在用户闲置一段时间后出现冻结页面的广告,必须使用找出该广告JavaScript(脚本)的SRC(src属性用来指定图片位置)才能解决。\n[0008] 3)由于网页代理服务器采用的协议设置和模板的限制,在通过网页代理服务器访问其他网站时,访问较高级的如AJAX可能不会正常,比如补充内容、发表意见、交付投票等项目可能会出现问题,另外,使用网页代理服务器时会有样式无法显示或显示异常等状况。\n[0009] 第二种,是所谓透明代理服务器,即通过代理服务器,即客户端通过代理服务器直接访问目标网站的方案。本方案大致可描述为:客户端首先与代理服务器建立连接,接着根据代理服务器所使用的代理服务器协议,请求对目标服务器建立连接、或者获得目标服务器的指定资源。本方案可以解决前述网络代理服务器的缺陷。\n[0010] 但是,该方案中,一旦客户端使用代理服务器,客户端会将本地所有的http访问请求发送给代理服务器,代理服务器在根据http访问请求构建DNS(域名系统,Domain Name System)请求,查询目标网站的IP,然后从目标网站获取相应内容返回至用户端,如此,由于所有http请求全部投递给代理服务器,而导致代理服务器负载过大,降低代理服务器性能。即现有技术中,如果客户端的IP属于预定IP地址库,而该客户端又不能直接访问预定IP地址库外的网站时,若客户端采用代理服务器访问IP地址库外的网站,那么现有技术中,一旦客户端采用代理,则客户端所有的HTTP访问请求均会通过代理服务器转发和接收,由于所有http请求全部投递给代理服务器,而导致代理服务器负载过大,降低代理服务器性能。\n发明内容\n[0011] 本申请所要解决的技术问题是提供一种访问网站的方法和系统,解决了在通过代理服务器访问不能通过客户端自身访问的网站时,将所有网页请求全部投递给代理服务器,而导致代理服务器负载过大,不能快速返回最优目标服务器IP,而造成网络访问延迟的问题。\n[0012] 为了解决上述问题,本申请公开了一种访问网站的方法,包括:\n[0013] 根据客户端的网页请求中的域名构造第一域名查询请求,并将所述请求发送至第一域名服务器;\n[0014] 获取第一域名服务器返回的标识IP地址;所述标识IP地址用于标识所述网页请求中域名对应的目标IP地址是否属于预定IP地址库;\n[0015] 根据所述标识IP地址判断出将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址;则根据所述代理服务器对应的IP地址,将所述网页访问请求发送至代理服务器。\n[0016] 优选的,根据客户端的网页请求中的域名构造第一域名查询请求,并将所述请求发送至第一域名服务器时包括:\n[0017] 通过钩子函数钩取系统域名查询函数;\n[0018] 针对客户端的网页请求中的域名,通过域名查询函数,构造第一域名查询请求;\n[0019] 将所述第一域名查询请求发送至所述第一域名服务器。\n[0020] 优选的,将所述第一域名查询请求发送至所述第一域名服务器时包括:\n[0021] 将所述域名查询请求通过异步I/O机制发送至第一域名服务器。\n[0022] 优选的,所述的异步I/O机制包括I/O完成端口机制。\n[0023] 优选的,所述预定IP地址库为中国IP地址段。\n[0024] 优选的,根据所述标识IP地址进行判断时包括:\n[0025] 当所述标识IP地址表示所述目标IP地址不属于中国IP地址段,将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址;\n[0026] 当所述标识IP地址表示所述目标IP地址属于中国IP地址段,则保留页面请求中域名对应的目标IP地址。\n[0027] 优选的,则根据所述代理服务器对应的IP地址,将所述网页访问请求发送至代理服务器时包括:\n[0028] 在客户端的所述网页请求中添加校验协议;\n[0029] 当所述代理服务器接收到所述网页请求时,根据所述校验协议校验所述客户端是否有权访问所述代理服务器。\n[0030] 优选的,根据所述标识IP地址判断出将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址时包括:\n[0031] 通过所述域名查询函数将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址。\n[0032] 相应的,本申请公开了一种访问网站的方法,包括:\n[0033] 接收客户端发送的第一域名查询请求;\n[0034] 根据所述第一域名查询请求构造第二域名查询请求,并发送至第二域名服务器;\n[0035] 获得第二域名服务器响应后,解析所述响应对应的目标IP地址;所述目标IP地址对应所述网页请求的域名;\n[0036] 结合预定IP地址库,判断所述IP地址是否在预定IP地址库内;根据判断结果,生成标识IP地址;所述标识IP地址用于标识所述网页请求中域名对应的目标IP地址是否属于预定IP地址库;\n[0037] 将所述标识IP地址返回至客户端。\n[0038] 优选的,根据所述第一域名查询请求构造第二域名查询请求,并发送至第二域名服务器包括:\n[0039] 解析第一域名查询请求,获的所述网页请求的域名;\n[0040] 基于所述域名,按域名查询协议构造第二域名查询请求;\n[0041] 将所述第二域名查询请求发送至第二域名服务器。\n[0042] 优选的,据判断结果,生成标识IP地址时包括:\n[0043] 基于所述目标IP地址,与所述预定IP地址库进行匹配计算;\n[0044] 如果在所述预定IP地址库内,则返回表示所述目标IP地址属于预定IP地址库的标识IP地址至客户端;\n[0045] 如果不在所述预定IP地址库内,则返回表示所述目标IP地址不属于预定IP地址库的标识IP地址至客户端。\n[0046] 优选的,所述IP地址库为中国IP地址段时,如果不在中国IP地址段内,则将所述目标IP地址作为标识IP地址返回至客户端。\n[0047] 相应的,本申请公开了一种访问网站的装置,包括:\n[0048] 域名重构模块,用于根据客户端的网页请求中的域名构造第一域名查询请求,并将所述第一域名查询请求发送至第一域名服务器;\n[0049] 地址获取模块,用于获取第一域名服务器返回的标识IP地址;所述标识IP地址用于标识所述网页请求中域名对应的目标IP地址是否属于预定IP地址库;\n[0050] 判断模块,用于根据所述标识IP地址判断出将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址;则根据所述代理服务器对应的IP地址,将所述网页访问请求发送至代理服务器。\n[0051] 优选的,所述域名重构模块包括:\n[0052] 钩取子模块,用于通过钩子函数钩取系统域名查询函数;\n[0053] 请求构造子模块,用于针对客户端的网页请求中的域名,通过域名查询函数,构造第一域名查询请求;\n[0054] 请求发送子模块,用于将所述第一域名查询请求发送至所述第一域名服务器。\n[0055] 优选的,将所述域名查询请求发送至所述第一域名服务器时包括:\n[0056] 将所述域名查询请求通过异步I/O机制发送至第一域名服务器。\n[0057] 优选的,所述的异步I/O机制包括I/O完成端口机制。\n[0058] 优选的,所述预定IP地址库为中国IP地址段。\n[0059] 优选的,所述判断模块包括:\n[0060] 第一判断子模块,用于当所述标识IP地址表示所述目标IP地址不属于中国IP地址段,将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址;\n[0061] 第二判断子模块,用于当所述标识IP地址表示所述目标IP地址属于中国IP地址段,则保留页面请求中域名对应的目标IP地址。\n[0062] 优选的,其特征在于则根据所述代理服务器对应的IP地址,将所述网页访问请求发送至代理服务器时包括:\n[0063] 安全设置模块,用于在客户端的所述网页请求中添加校验协议;\n[0064] 当所述代理服务器接收到所述网页请求时,根据所述校验协议校验所述客户端是否有权访问所述代理服务器。\n[0065] 优选的,根据所述标识IP地址判断出将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址时包括:\n[0066] 通过所述域名查询函数将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址。\n[0067] 相应的,本申请公开了一种访问网站的装置,包括:\n[0068] 域名查询请求接收模块,用于接收客户端发送的第一域名查询请求;\n[0069] 域名查询请求处理模块,用于根据所述第一域名查询请求构造第二域名查询请求,并发送至第二域名服务器;\n[0070] 域名查询请求响应处理模块,用于获得第二域名服务器响应后,解析所述响应对应的目标IP地址;所述目标IP地址对应所述网页请求的域名;\n[0071] 目标IP地址判断模块,结合预定IP地址库,判断所述IP地址是否在预定IP地址库内;根据判断结果,生成标识IP地址;所述标识IP地址用于标识所述网页请求中域名对应的目标IP地址是否属于预定IP地址库;\n[0072] 返回模块,用于将所述标识IP地址返回至客户端。\n[0073] 优选的,所述域名查询请求处理模块包括:\n[0074] 解析子模块,用于解析第一域名查询请求,获的所述网页请求的域名;\n[0075] 构造子模块,用于基于所述域名,按域名查询协议构造第二域名查询请求;\n[0076] 发送子模块,用于将所述第二域名查询请求发送至第二域名服务器。\n[0077] 优选的,所述域名查询请求响应处理模块包括:\n[0078] 匹配计算模块,用于基于所述目标IP地址,与所述预定IP地址库进行匹配计算;\n[0079] 第一标识IP地址返回模块,用于如果在所述预定IP地址库内,则返回表示所述目标IP地址属于预定IP地址库的标识IP地址至客户端;\n[0080] 第二标识IP地址返回模块,用于如果不在所述预定IP地址库内,则返回表示所述目标IP地址不属于预定IP地址库的标识IP地址至客户端。\n[0081] 优选的,所述IP地址库为中国IP地址段时,所述第二标识IP地址返回模块用于,如果不在中国IP地址段内,则将所述目标IP地址作为标识IP地址返回至客户端。\n[0082] 与现有技术相比,本申请包括以下优点:\n[0083] 本申请在客户端中,对于客户端的网页请求,根据客户端的网页请求中网页请求中的域名构造第一域名请求,将所述第一域名请求发送至第一域名服务器,通过所述第一域名服务器判断所述域名对应的目标IP地址是否为预定IP地址库,根据判断结果通知客户端决定是否将页面请求中域名对应的目标IP替换为代理服务器的IP。如此,对于客户端可以通过自身直接访问的网页请求,则不用通过代理服务器访问,而客户端需要通过代理服务器访问的页面才采用代理服务器,降低了代理服务器的负载,提高了代理服务器的性能。\n附图说明\n[0084] 图1是本申请的一种访问网站的方法的流程示意图;\n[0085] 图2是本申请对应于图1的一种访问网站的方法的流程示意图;\n[0086] 图3是本申请的一种访问网站的装置的结构示意图;\n[0087] 图4是本申请对应于图3的一种访问网站的装置的结构示意图;\n[0088] 图5是本申请的一种访问网站的系统的结构示意图。\n具体实施方式\n[0089] 为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。\n[0090] 参照图1,示出了本申请一种访问网站的方法的流程示意图,包括:\n[0091] 步骤110,根据客户端的网页请求中的域名构造第一域名查询请求,并将所述请求发送至第一域名服务器。\n[0092] 在本申请中,可预先设置第一域名服务器(第一DNS服务器),和代理服务器。其中,第一域名服务器用于获取客户端发送的第一域名查询请求,即DNS查询请求中域名对应的目标IP地址。\n[0093] 对于域名服务器,其工作的原理一般如下:\n[0094] 第一步:客户机A提出域名解析请求,并将该请求发送给本地的域名服务器。\n[0095] 第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。\n[0096] 第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。\n[0097] 第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。\n[0098] 第五步:重复第四步,直到找到正确的纪录。\n[0099] 第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机A。\n[0100] 在上述过程中,客户机A一般只从第一个接收客户机A的域名查询请求的域名服务器获取最终域名对应的IP。\n[0101] 在实际中,客户端本身一般会设置默认的本地域名服务器,当客户端出现HTTP请求时,首先从默认的本地域名服务器开始查询获取HTTP请求中域名对应的IP。而本申请在客户端出现HTTP请求时,首先拦截客户端的网页请求,根据客户端的HTTP请求中的域名自行构造第一域名查询请求,并将所述第一域名查询请求发送至第一域名服务器。\n[0102] 那么对于本申请,如果对于教育网的客户端,当所述第一域名服务器设置在教育网中时,可快速解析最优DNS IP,而避免了因为默认DNS服务器不在教育网内等情况导致的解析DNS IP路径过长而导致的网络延迟问题。\n[0103] 本申请对于客户端的HTTP请求,客户端对HTTP请求中的域名进行解析,基于所述域名构造DNS请求发送至第一域名服务器中。\n[0104] 优选的,根据客户端的网页请求中的域名构造第一域名查询请求,并将所述请求发送至第一域名服务器时包括:\n[0105] 步骤S111,通过钩子函数钩取系统域名查询函数;\n[0106] 本申请中,可采用微软提供的Detours库实现Hook,即通过钩子函数钩取系统域名查询函数getaddrinfo。域名查询函数getaddrinfo可用于域名解析服务的,如:将www.baidu.com翻译对应的IP地址,以便网络程序进行连接。域名查询函数getaddrinfo还可根据RFC1035协议,构造DNS A或AAAA命令,发给DNS服务器,并解析DNS服务器返回的response,解析出IP列表,一般选择IP列表中第一个IP地址作为所述域名对应的IP地址。\n[0107] 本申请在系统进行默认域名解析服务时,通过hook域名查询函数,可实现DNS查询请求的定向发送。\n[0108] 步骤S112,针对客户端的网页请求中的域名,通过域名查询函数,构造第一域名查询请求;\n[0109] 在本申请中,hook了getaddrinfo函数之后,基于本地客户端的IP地址和本申请预设的第一域名服务器的IP地址构造第一域名查询请求,在实际中还会结合第一域名服务器的端口构造第一域名查询请求。\n[0110] 相应的当第一域名服务器获取到客户端HTTP请求中域名对应的IP后,会以客户端的IP地址和第一域名服务器的IP地址构造响应,并将响应返回给客户端。参照图2b,其示出了DNS响应的示例。\n[0111] 步骤S113,将所述第一域名查询请求发送至所述第一域名服务器。\n[0112] 在客户端hook域名查询函数,构造出上述的第一域名查询请求后,会将所述第一域名查询请求发送至第一域名服务器。\n[0113] 优选的,将所述第一域名查询请求发送至所述第一域名服务器时包括:\n[0114] 步骤S11,将所述域名查询请求通过异步I/O机制发送至第一域名服务器。\n[0115] 通过异步并发绑定多端口(53,80,8000等),可以使一些防火墙禁用除防火墙指定的DNS IP外的其他DNS服务器。比如因为绑定了80端口,一般防火墙会误认为是HTTP流量,所以可以突破类似的规则。\n[0116] 进一步优选的,所述的异步I/O机制包括I/O完成端口机制。即采用I/OCP机制异步并发发送DNS查询请求给DNS服务器。\n[0117] 在实际中,Windows操作系统提供了异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(CompletI/On Port)共等异步发送的I/O机制,所以本申请中还可采用上述异步机制中的其他机制。\n[0118] 本申请优选采用I/O完成端口机制,“完成端口”机制是迄今为止最为复杂的一种I/O机制。然而,假若一个应用程序同时需要管理为数众多的套接字,那么采用这种机制,可以达到最佳的系统性能。\n[0119] 对于重叠I/O来说:Winsock2的发布使得Socket I/O有了和文件I/O统一的接口。可以通过使用Win32文件操纵函数ReadFile和WriteFile来进行Socket I/O。这样,用于普通文件I/O的重叠I/O机制和完成端口机制对Socket I/O也适用了。本机制的优点是可以达到更佳的系统性能,但是实现较为复杂。\n[0120] 对于异步选择来说:该机制是Winsock提供的异步I/O机制。利用这个机制,应用程序可在一个套接字上,接收以Windows消息为基础的网络事件通知。具体的做法是在建好一个套接字后,调用WSAAsyncSelect函数。\n[0121] 对于事件选择来说:该机制是Winsock提供的异步I/O机制。它与异步选择机制类似,允许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知。\n[0122] 另外,本申请在所述第一域名查询请求发送至所述第一域名服务器时还可包括:\n[0123] 步骤P111,将所述域名查询请求同步发送至第一域名服务器。\n[0124] 步骤120,获获取第一域名服务器返回的标识IP地址;所述标识IP地址用于标识所述网页请求中域名对应的目标IP地址是否属于预定IP地址库。\n[0125] 在本申请中,在客户端将所收第一域名查询请求发送至第一域名服务器后,第一域名服务器的处理过程包括:\n[0126] 步骤A1,接收客户端发送的第一域名查询请求;\n[0127] 根据前述介绍,第一域名服务器在接收到所述第一域名查询请求时,可根据DNS查询机制获取所述客户端HTTP请求中域名对应的目标IP地址。\n[0128] 第一域名服务器首先获取客户端发送的第一域名查询请求。\n[0129] 步骤A2,根据所述第一域名查询请求构造第二域名查询请求,并发送至第二域名服务器;\n[0130] 在本申请中,第一域名服务器一般不具备查询域名对应的目标IP地址的功能,需要转发至具有实际查询功能的第二域名服务器查询所述域名对应的目标IP地址。根据相应的路由路径查询到所述域名对应的IP地址。\n[0131] 优选的,根据所述第一域名查询请求构造第二域名查询请求,并发送至第二域名服务器时包括:\n[0132] 步骤A21,解析第一域名查询请求,获的所述网页请求的域名;\n[0133] 第一域名服务器接收到所述第一域名查询请求后,根据解析协议,从所述第一域名查询请求中解析客户端的域名。\n[0134] 步骤A22,基于所述域名,按域名查询协议构造第二域名查询请求;\n[0135] 步骤A23,将所述第二域名查询请求发送至第二域名服务器。\n[0136] 在本申请中,预置的第一域名服务器本身一般不负责查询解析所述域名对应的目标IP地址,而是根据所述域名构造第二域名查询请求,并发送至第二域名服务器,通过第二域名服务器获取包括域名对应的IP的响应。其中第二域名服务器一般为第一域名服务器所在的或者指定的真正具有DNS查询功能的域名服务器。所述第二域名服务器可根据前述DNS查询机制获取域名对应的IP,然后生成响应返回给第一域名服务器。\n[0137] 当然,也可将所述第二域名服务器设置为具有DNS查询功能的域名服务器。\n[0138] 步骤A3,获得第二域名服务器响应后,解析所述响应对应的目标IP地址;所述目标IP地址对应所述网页请求的域名;\n[0139] 第二服务器得到对应所述域名的IP后,会生成包括该IP的响应返回,然后第一域名服务器会解析所述响应,从中获取所述域名对应的IP地址。\n[0140] 步骤A4,结合预定IP地址库,判断所述IP地址是否在预定IP地址库内;根据判断结果,生成标识IP地址;所述标识IP地址用于标识所述网页请求中域名对应的目标IP地址是否属于预定IP地址库。\n[0141] 优选的,据判断结果,生成标识IP地址时包括:\n[0142] 步骤A31,基于所述目标IP地址,与所述预定IP地址库进行匹配计算;\n[0143] 步骤A32,如果在所述预定IP地址库内,则返回表示所述目标IP地址属于预定IP地址库的标识IP地址至客户端;\n[0144] 步骤A33,如果不在所述预定IP地址库内,则返回表示所述目标IP地址不属于预定IP地址库的标识IP地址至客户端。\n[0145] 本申请的第一域名服务器在得到客户端HTTP请求中域名对应的IP地址后,会结合预定IP地址库进行判断,然后基于判断结果生成标识IP地址返回客户端。\n[0146] 基于该IP地址,查找中国IP地址段库,判断所述IP地址是否在预定IP地址库内,然后针对判断结果,采用不同的标识IP地址对所述IP地址进行标识,表示该IP地址是否为预定IP地址库。因为,基于DNS解析协议,需要IP地址形式构造的响应一般才能被解析,所以采用标识IP地址的形式对所述域名对应的目标IP地址进行标识。比如如果所述域名对应的目标IP地址为国内IP,以0.0.0.0为标识IP地址,表示所述域名对应的目标IP地址为国内IP。\n[0147] 当然,本申请也可以其他方式标识所述域名的IP地址是否为中国IP地址段,本申请不对其加以限制。\n[0148] 进一步的,所述IP地址库为中国IP地址段时,如果不在中国IP地址段内,则将所述目标IP地址作为标识IP地址返回至客户端。\n[0149] 即进一步,据判断结果,生成标识IP地址时,包括:\n[0150] 步骤A3,如果所述目标IP地址属于中国IP地址段,则返回表示所述IP地址为中国IP地址段的标识IP地址至客户端;\n[0151] 比如,当第一域名服务器判断所述域名对应的目标IP地址为中国IP地址段时,则返回包括0.0.0.0的IP地址的响应给客户端。也可以返回其他规定形式的包括标识IP地址的响应给客户端。\n[0152] 步骤A4,果所述目标IP地址不属于中国IP地址段,将所述IP地址作为标识IP地址返回至客户端。\n[0153] 如果不在,则直接返回所述域名对应的目标IP地址的响应给客户端。\n[0154] 步骤130,根据所述标识IP地址判断出将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址;则根据所述代理服务器对应的IP地址,将所述网页访问请求发送至代理服务器。\n[0155] 客户端在接收到第一域名服务器返回的包括标识IP地址的响应后,解析响应的标识IP地址,根据所述标识IP地址的形式判断其是否属于预定IP地址库。\n[0156] 在本申请中,如果客户端的IP地址属于预定IP地址库;当所述客户端页面请求中域名对应的目标IP地址属于所述预定IP地址库时,则保留客户端页面请求中域名对应的目标IP地址;当所述客户端页面请求中域名对应的目标IP地址不属于所述预定IP地址库,则将客户端页面请求中域名对应的目标IP地址替换为代理服务器的IP地址。如此,可使客户端访问所述预定IP地址库外的网站时,可通过代理访问。\n[0157] 其中,当所述预定地址库为所述预定IP地址库为中国IP地址段,根据所述标识IP地址进行判断时包括:\n[0158] 步骤S131,当所述标识IP地址表示所述目标IP地址不属于中国IP地址段,将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址;\n[0159] 步骤S131,当所述标识IP地址表示所述目标IP地址属于中国IP地址段,则保留页面请求中域名对应的目标IP地址。\n[0160] 其中,判断时,一般是根据客户端与第一域名服务器对所述标识IP地址的形式的定义判断的,比如前述例子中,解析到响应中的标识IP地址为0.0.0.0,那么客户端即可判断所述域名对应的目标IP地址为中国IP地址段;如果所述标识IP地址为非0.0.0.0,那么即可判断所述域名对应的目标IP地址为中国IP地址段外地址。其中,客户端所在地址段属于中国IP地址段。\n[0161] 当判断所述域名对应的目标IP地址为中国IP地址段外地址时,则将页面请求的目标IP地址替换为代理服务器的IP地址,即页面请求原本是访问页面请求中域名对应的目标IP地址,而此时页面请求就访问代理服务器的IP地址。\n[0162] 另外当判断所述域名对应的目标IP地址为中国IP地址段时,不进行上述替换,所述网页请求按页面请求的目标IP地址进行访问。即页面请求按页面请求直接访问其中的域名对应的目标IP地址。\n[0163] 优选的,通过所述域名查询函数将页面请求的目标IP地址替换为代理服务器的IP地址。\n[0164] 步骤140,根据所述代理服务器对应的IP地址,将对应所述国外的IP地址的网页访问请求发送至代理服务器。\n[0165] 在进行前述替换后,对于客户端访问预定IP地址库的页面请求,就可转发至代理服务器进行访问。\n[0166] 另外,优选的,根据所述代理服务器对应的IP地址,将对应所述国外的IP地址的网页访问请求发送至代理服务器时包括:\n[0167] 步骤C1,在客户端的所述网页请求中添加校验协议;\n[0168] 步骤C2,当所述代理服务器接收到所述网页请求时,根据所述校验协议校验所述客户端是否有权访问所述代理服务器。\n[0169] 即在本申请中,对于客户端发送页面请求到代理服务器时,根据与代理服务器的约定,在请求中校验协议,保证所述页面请求内容的安全。\n[0170] 参照图2,其示出了本申请一种访问网站的方法的流程示意图,包括:\n[0171] 步骤210,接收客户端发送的第一域名查询请求;\n[0172] 步骤220,根据所述第一域名查询请求构造第二域名查询请求,并发送至第二域名服务器;\n[0173] 步骤230,获得第二域名服务器响应后,解析所述响应对应的目标I P地址;所述目标IP地址对应所述网页请求的域名;\n[0174] 步骤240,结合预定IP地址库,判断所述IP地址是否在预定IP地址库内;根据判断结果,生成标识IP地址;所述标识IP地址用于标识所述网页请求中域名对应的目标IP地址是否属于预定IP地址库;\n[0175] 步骤250,将所述标识IP地址返回至客户端。\n[0176] 优选的,根据所述第一域名查询请求构造第二域名查询请求,并发送至第二域名服务器包括:\n[0177] 步骤L1,解析第一域名查询请求,获的所述网页请求的域名;\n[0178] 步骤L2,基于所述域名,按域名查询协议构造第二域名查询请求;\n[0179] 步骤L3,将所述第二域名查询请求发送至第二域名服务器。\n[0180] 优选的,据判断结果,生成标识IP地址时包括:\n[0181] 步骤M1,基于所述目标IP地址,与所述预定IP地址库进行匹配计算;\n[0182] 步骤M2,如果在所述预定IP地址库内,则返回表示所述目标IP地址属于预定IP地址库的标识IP地址至客户端;\n[0183] 步骤M3,如果不在所述预定IP地址库内,则返回表示所述目标IP地址不属于预定IP地址库的标识IP地址至客户端。\n[0184] 进一步,优选的,所述IP地址库为中国IP地址段时,如果不在中国IP地址段内,则将所述目标IP地址作为标识IP地址返回至客户端。本方法于前述方法相对应,在前述步骤中已经详述,在此不再赘述。\n[0185] 参照图3,其示出了本申请一种访问网站的装置的结构示意图,包括:\n[0186] 客户端410,所述客户端包括:\n[0187] 域名重构模块411,用于根据客户端的网页请求中的域名构造第一域名查询请求,并将所述第一域名查询请求发送至第一域名服务器;\n[0188] 地址获取模块412,用于获取第一域名服务器返回的标识IP地址;所述标识IP地址用于标识所述网页请求中域名对应的目标IP地址是否属于预定IP地址库;\n[0189] 判断模块413,用于根据所述标识IP地址判断出将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址;则根据所述代理服务器对应的IP地址,将所述网页访问请求发送至代理服务器。\n[0190] 优选的,所述域名重构模块包括:\n[0191] 钩取子模块,用于通过钩子函数钩取系统域名查询函数;\n[0192] 请求构造子模块,用于针对客户端的网页请求中的域名,通过域名查询函数,构造第一域名查询请求;\n[0193] 请求发送子模块,用于将所述第一域名查询请求发送至所述第一域名服务器。\n[0194] 优选的,将所述域名查询请求发送至所述第一域名服务器时包括:\n[0195] 将所述域名查询请求通过异步I/O机制发送至第一域名服务器。\n[0196] 优选的,所述的异步I/O机制包括I/O完成端口机制。\n[0197] 优选的,所述预定IP地址库为中国IP地址段。\n[0198] 优选的,所述判断模块包括:\n[0199] 第一判断子模块,用于当所述标识IP地址表示所述目标IP地址不属于中国IP地址段,将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址;\n[0200] 第二判断子模块,用于当所述标识IP地址表示所述目标IP地址属于中国IP地址段,则保留页面请求中域名对应的目标IP地址。\n[0201] 优选的,其特征在于则根据所述代理服务器对应的IP地址,将所述网页访问请求发送至代理服务器时包括:\n[0202] 安全设置模块,用于在客户端的所述网页请求中添加校验协议;\n[0203] 当所述代理服务器接收到所述网页请求时,根据所述校验协议校验所述客户端是否有权访问所述代理服务器。\n[0204] 优选的,根据所述标识IP地址判断出将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址时包括:\n[0205] 通过所述域名查询函数将页面请求中域名对应的目标IP地址替换为代理服务器的IP地址。\n[0206] 优选的,所述代理服务器在教育网内。\n[0207] 参照图4,其示出了本申请一种访问网站的装置结构示意图,包括:\n[0208] 第一域名服务器510,所述域名服务器包括:\n[0209] 域名查询请求接收模块511,用于接收客户端发送的第一域名查询请求;\n[0210] 域名查询请求处理模块512,用于根据所述第一域名查询请求构造第二域名查询请求,并发送至第二域名服务器;\n[0211] 域名查询请求响应处理模块513,用于获得第二域名服务器响应后,解析所述响应对应的目标IP地址;所述目标IP地址对应所述网页请求的域名;\n[0212] 目标IP地址判断模块514,结合预定IP地址库,判断所述IP地址是否在预定IP地址库内;根据判断结果,生成标识IP地址;所述标识IP地址用于标识所述网页请求中域名对应的目标IP地址是否属于预定IP地址库;\n[0213] 返回模块515,用于将所述标识IP地址返回至客户端。\n[0214] 优选的,所述域名查询请求处理模块包括:\n[0215] 解析子模块,用于解析第一域名查询请求,获的所述网页请求的域名;\n[0216] 构造子模块,用于基于所述域名,按域名查询协议构造第二域名查询请求;\n[0217] 发送子模块,用于将所述第二域名查询请求发送至第二域名服务器。\n[0218] 优选的,所述域名查询请求响应处理模块包括:\n[0219] 匹配计算模块,用于基于所述目标IP地址,与所述预定IP地址库进行匹配计算;\n[0220] 第一标识IP地址返回模块,用于如果在所述预定IP地址库内,则返回表示所述目标IP地址属于预定IP地址库的标识IP地址至客户端;\n[0221] 第二标识IP地址返回模块,用于如果不在所述预定IP地址库内,则返回表示所述目标IP地址不属于预定IP地址库的标识IP地址至客户端。\n[0222] 优选的,所述IP地址库为中国IP地址段时,所述第二标识IP地址返回模块用于,如果不在中国IP地址段内,则将所述目标IP地址作为标识IP地址返回至客户端。\n[0223] 参照图5,其示出了本申请一种访问网站系统结构示意图,包括:\n[0224] 客户端610,第一域名服务器620,和代理服务器630;\n[0225] 客户端610,所述客户端包括:\n[0226] 域名重构模块611,用于根据客户端的网页请求中的域名构造第一域名查询请求,并将所述第一域名查询请求发送至第一域名服务器;\n[0227] 地址获取模块612,用于获取第一域名服务器返回的标识IP地址;所述标识IP地址用于标识所述网页请求中域名对应的目标IP地址是否属于预定IP地址库;\n[0228] 判断模块613,用于根据所述标识IP地址判断出将页面请求中域名对应的目标IP地址替换为代理服务器630的IP地址;则根据所述代理服务器630对应的IP地址,将所述网页访问请求发送至代理服务器630;\n[0229] 所述第一域名服务器620包括:\n[0230] 域名查询请求接收模块621,用于接收客户端发送的第一域名查询请求;\n[0231] 域名查询请求处理模块622,用于根据所述第一域名查询请求构造第二域名查询请求,并发送至第二域名服务器;\n[0232] 域名查询请求响应处理模块623,用于获得第二域名服务器响应后,解析所述响应对应的目标IP地址;所述目标IP地址对应所述网页请求的域名;\n[0233] 目标IP地址判断模块624,结合预定IP地址库,判断所述IP地址是否在预定IP地址库内;根据判断结果,生成标识IP地址;所述标识IP地址用于标识所述网页请求中域名对应的目标IP地址是否属于预定IP地址库;\n[0234] 返回模块625,用于将所述标识IP地址返回至客户端。\n[0235] 对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。\n[0236] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。\n[0237] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。\n[0238] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。\n[0239] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。\n[0240] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。\n[0241] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。\n[0242] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。\n[0243] 以上对本申请所提供的一种访问网站的方法和装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
法律信息
- 2022-03-11
未缴年费专利权终止
IPC(主分类): H04L 29/12
专利号: ZL 201210093093.8
申请日: 2012.03.31
授权公告日: 2015.05.06
- 2015-05-06
- 2012-12-12
专利申请权的转移
登记生效日: 2012.11.07
申请人由奇智软件(北京)有限公司变更为北京奇虎科技有限公司
地址由100016 北京市朝阳区酒仙桥路14号兆维大厦4层东侧单元变更为100088 北京市西城区新街口外大街28号D座112室(德胜园区)
申请人变更为奇智软件(北京)有限公司
- 2012-10-10
实质审查的生效
IPC(主分类): H04L 29/12
专利申请号: 201210093093.8
申请日: 2012.03.31
- 2012-08-22
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-10-12
|
2011-05-31
| | |
2
| |
2010-06-30
|
2009-12-30
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |