2024/10/04 为了避免误导大家,该方法应该不可用了。该文章仅作存档。
注意:
目前64.233.X.X IP段可用服务器已经不多了,大家可以尝试173.194.79.1开始,搜索200个左右的IP。
BUG修复:
var IP =
{
toInt: function(ip)
{
var ipTest =/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
var xH = "", result = ipTest.exec(ip);
if(!result) return -1;
return (parseInt(result[1]) << 24
| parseInt(result[2]) << 16
| parseInt(result[3]) << 8
| parseInt(result[4])) >>> 0;
},
toString: function(ip)
{
if(ip < 0 || ip > 0xFFFFFFFF){
throw new ArgumentException("参数超过IPV4地址范围。");
}
return (ip >>> 24) + "." + (ip >> 16 & 0xFF) + "." + (ip >> 8 & 0xFF) + "." + (ip & 0xFF);
}
}
在当前脚本21行找到这个对象,替换掉这个对象的代码。之前的版本忘了考虑负数问题,所以把IP转换成整数会有可能出现负数的可能,只需要把整数>>>0运算就可以解决这个问题。
上述BUG只存在之前下载的脚本内,当前提供下载的脚本已修复该BUG。
从Google公开宣布退出天朝开始,在我天朝上国Google服务一直是不稳定的,最近两年更是直接河蟹不能访问(嘿嘿,原因你懂得。此处省略N字)。但是由于Google索引了全球众多优秀站点,对于众多程序猿和各行各业的科研工作者来说是很有用的,离开了Google用某度很显然是一种很操蛋的感觉(中文搜索也没觉得某度能比Google好到哪里,差太远了)。写这篇文章我并不是想挑战党的英明领导,我只想让更多的学者、科研工作者能使用Google提供的全球搜索服务查找学习资料。
我觉得我应该检讨下自己,我还是背一遍《社会主义核心价值观》好了:富强、民主、文明、和谐;自由、平等、公正、法治;爱国、敬业、诚信、友善。希望大家热爱自己的国家,热爱党,我们用Google只是学习国外的先进科学技术。
之前互联网上也有很多关于如何恢复Google服务的文章,但是大多数都是授人以鱼,并不是授人以渔。
好了,废话不多说,我们开始进入正题,如何不翻墙使用Google的服务。
一、了解Google是如何被封的,以及WEB服务的请求过程。(如果不想了解原理可直接跳过本节,直接到第二节)
之前发过两篇博文说过如何恢复Google服务,但是由于文章可读内容非常少,对于一般用户来说可能没什么意义,这篇文章我将用大量的截图和例子说明如何恢复Goolge服务,让您在不翻墙的情况下使用Goolge提供的优秀搜索服务。《利用EJS查找可用的Google搜索服务器IP,并缓存入系统Hosts文件内(改进版)》《利用EJS查找可用的Google搜索服务器IP,并缓存入系统Hosts文件内》
一般人遇到被墙网站首先想到的是利用代理翻墙,但是这招会非常影响速度,时间就是生命,时间就是金钱,打开个网站要超过5秒这种感觉会非常蛋疼,因此,不到万不得已的情况下我一般不会考虑使用IP代理的。
要解决天朝境内不能使用Google的问题首先我们要了解天朝是如何做到屏蔽大家上Google的。
众所周知,我们上Google需要在浏览器的地址栏输入http://www.google.com.hk,这就是Google的域名,通过Google的域名我们可以访问Google的服务器。而服务器在互联网的唯一地址应该是IP,而不是域名,这就涉及到域名解析问题。域名在得到最终IP的过程就是域名解析的过程,这一般是通过DNS服务器实现的,在浏览器访问http://www.google.com.hk的时候会向当前计算机内设置的DNS服务器查询www.google.com.hk域名对应的IP地址,然后通过TCP/IP协议访问这个IP地址的80端口,并且发送HTTP协议内规定的请求头信息,最后服务器收到信息后就会返回Google的网页源代码,浏览器渲染这些HTML代码后将Google搜索的界面显示在您的面前。这就是一个简单的WEB交互过程,在了解完这个WEB交互过程我们就可以开始分析Google为什么不能访问了。
通过前面的讲解,我们应该清楚了我们访问Google服务需要经历哪些环节,通过了解这些环节我们可以逐一排除可能的原因,并最终找到答案。
1、排除DNS解析过程中的问题。
要测试这个问题可以通过Windows提供的ping命令,这个命令可以支持解析域名,并得到最终的IP地址。
按WIN键+R可以打开“运行”,键入“cmd”后按回车则可以打开命令行工具。
在命令行工具内键入ping www.google.com.hk,如下图所示。
我的系统是做过处理的,可以在不翻墙的情况下使用Google,因此我们可以看到我这里ping Google域名是有响应的。
但是您在自己的电脑上ping的时候可能只能看到“正在 Ping www.google.com.hk [XXX.XXX.XXX.XXX] 具有 32 字节的数据:”,然后后面就是超时信息。
通过上述简单的小实验我们就可以排除在DNS解析过程中发生了问题。
2、排除Google服务器的IP被封。
嘿嘿,上面的小实验其实已经说明了结果,其实就是Google服务器的IP被封了(否则不会ping不通Google服务器,而Google服务器是没有禁止ping的,它会响应ping),在我朝主干网络上,组织可对我等屁民的任何网络请求进行拦截,要封一个IP对于伟大的党组织来说是非常容易的。
知道了原因,我们开始想办法如何突破这种封锁。
要知道,Google作为全球最大的搜索引擎服务商,它绝不可能只有一台服务器,它的服务器遍布全球各地,因此组织要想完全封锁Google服务也并不是那么容易的,而且组织内部的科研人员很多情况下肯定也是需要使用Google服务的,因此他们必定留有一些可用的Google服务器或者漏网之鱼。我们通过去扫描已知的Google服务器IP段可以找到这些可用的服务器,并使用系统提供的DNS缓存文件(hosts)就可以将这些IP缓存到本地电脑,以后在域名解析的时候直接使用本机的DNS缓存进行解析,而不是用DNS服务器。
二、如何突破封锁,恢复Google服务。
了解了上述原理,要恢复Google对于会编程的程序猿来说应该是so easy的,但是对于普通大众来说还是有些麻烦的,这里我提供一个非常简单的方案,只需要下载一个脚本解释器,运行一端小脚本即可。
1、首先,需要下载一个脚本解释器; EJSTool Alpha2 V1.3[R1](绿色版).zip (它内置了强大的运行库,可以方便的使用JavaScrit进行编程)
上一版本下载地址:http://pan.baidu.com/s/1c06fbtY(存在若干BUG,并且与2015年3月12日微软发布的某个补丁存在冲突,导致IDE无法启动,不建议下载,建议下载新版本)
2、解压脚本解释器,得到目录“EJSTool Alpha2 V1.2[R1](绿色版)”,在目录内找到
双击它即可在系统内注册SJS脚本文件的关联。(注意:部分杀毒软件会给出提示有一个叫“ejsshell.exe”的程序正在操作系统注册表,只要将ejsshell.exe设置到杀毒软件白名单即可,这只是一个脚本解释器,对电脑并没有任何副作用,如果不想关联SJS文件只要双击“取消注册SJS文件.bat”文件即可)
3、下载EJS脚本文件,点击这里下载脚本文件。
如果前面已经关联了SJS文件,则下载回来的文件会有一个灰色的图标,上面带有SJS字样,如下图:
双击这个文件即可开始恢复Google服务之旅。
如果双击脚本文件后一切正常,则会出现上面截图中的内容。上面的输入框内是设置Google服务器IP段起始内容的,一般按照默认参数设置即可。
设置完这两步后脚本就开始搜索工作了,请耐心等待脚本执行完毕。
在200个Google服务器IP之间一般都会有两三个IP是可用的,在找到可用的IP后SJS脚本会将这个IP缓存到系统的hosts文件内。
完成搜索后在浏览器中键入http://www.google.com.hk
嘿嘿,恢复完后你会意外的发现原来Chrome的数据同步服务也正常了。
Done, have fun...
本文短地址:http://ily.so/zIzUNz