Google最近发布了Google Plus,但是几乎是刚刚一发布就无法访问,同时面对着GMail,Google搜索越来越频繁的连接阻断问题,我们急需要一个方案来更方便的访问Google服务。

如果在校园网中,IPv6无疑是一个良好的解决方案,本博这篇文章给出了相关方法,在Google Code上也有一个Project专门维护Google IPv6的Host列表。

但是在没有IPv6环境的情况,这个自动脚本就有了意义。本脚本最初来自Google+ 上的Felix Hsu,他已发布正式版,但是我还是个人更喜欢这个version 3一些~ XD

Windows Vista/7用户在开启UAC的情况下需要“右键->以管理员的身份运行”

点击此下载该脚本
建议大家使用smarthosts

@echo off
REM 欢迎圈我,在顶栏的"查找人员"处输入Felix Hsu即可
REM Mod by logicmd
REM 准备工作,先清一下DNS缓存,再备份hosts
ipconfig /flushdns
cls

REM 测试时有的朋友会不耐烦的点掉,咱提示一下:
echo Google+ hosts自动修改脚本
echo 请稍等一下,正在通过网络获取可用IP

REM 然后ping www.google.cn和www.google.com以获取最新的IP,赋值%CNIP%和%COMIP%
REM ping ditu.google.cn获取最新的IP,赋值%MAPIP%

for /f "tokens=2 delims=[]" %%i in ('ping www.g.cn') do set CNIP=%%i
for /f "tokens=2 delims=[]" %%i in ('ping www.l.google.com') do set COMIP=%%i
for /f "tokens=2 delims=[]" %%i in ('ping ditu.google.cn') do set MAPIP=%%i

REM 找到之前改过的行,删掉,很stupid的方法...
type %windir%\System32\drivers\etc\hosts|find "#THISISNOTE" /i /v|find "#Google Plus" /i /v|findstr "." >>%windir%\System32\drivers\etc\hosts2
ren %windir%\System32\drivers\etc\hosts hosts3
ren %windir%\System32\drivers\etc\hosts2 hosts
del hosts3 /s /q

REM 为了美观和避免直接在文件末尾添加的惨剧,咱空一行
echo.  >>%windir%\System32\drivers\etc\hosts
echo #Google Plus >>%windir%\System32\drivers\etc\hosts

REM 把获取到的%CNIP%和%COMIP%给写进去,为了方便以后可以删除,加了一个#THISISNOTE 的注释,我实在是想不出怎么做了,望见谅
echo %CNIP% plus.google.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% talkgadget.google.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %COMIP% picasaweb.google.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %COMIP% lh1.ggpht.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %COMIP% lh2.ggpht.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %COMIP% lh3.ggpht.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %COMIP% lh4.ggpht.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %COMIP% lh5.ggpht.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %COMIP% lh6.ggpht.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% lh6.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% lh5.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% lh4.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% lh3.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% lh2.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% lh1.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% plus.google.com.hk  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% plusone.google.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% s2.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% s1.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% images1-focus-opensocial.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% images2-focus-opensocial.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% images3-focus-opensocial.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% images4-focus-opensocial.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% images5-focus-opensocial.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% images6-focus-opensocial.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% images-pos-opensocial.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% maps-api-ssl.google.com #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% www.google.com.hk  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% www.google.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% webcache.googleusercontent.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% mail.google.com #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% www.googlelabs.com #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% docs.google.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% plus.google.com #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% profiles.google.com #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% services.google.com #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% clients4.google.com #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% clients2.google.com #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% chrome.google.com #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %CNIP% tools.google.com #THISISNOTE >>%windir%\System32\drivers\etc\hosts 

REM 把获取到的%MAPIP%
echo %MAPIP% maps.google.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts
echo %MAPIP% ditu.google.com  #THISISNOTE >>%windir%\System32\drivers\etc\hosts  

REM ok,搞定
echo 您的hosts编辑完成.
REM 按任意键继续的功能千万别有,否则别人问你按任意键是神马意思的话...

UPDATE:建议大家使用smarthosts

FAQ[1]

  • 这些IP是否可靠?

这些IP都来自于GoogleCN在BJ的数据中心,包括大约30个C段IP(203.208.32.0 – 203.208.63.255)

  • 这些IP都在国内理论上将是否能够一直可用?

不能保证未来的可用性。

  • 用这些Host是否意味着Google用户的Mail/Plus/Picasa存在BJ的数据中心的呢?还是采用的反向代理或者隧道一类的技术?

只是反向代理,谷歌分布式系统中的 Web server 部分,参见 [2]。

Promotion

最后,荒淫大家来我。


[1]http://www.zhihu.com/question/19749678
[2][Micro'03] Web search for a planet: The Google cluster architecture http://static.googleusercontent.com/external_content/untrusted_dlcp/labs.google.com/en//papers/googlecluster-ieee.pdf