layout: post title: 自动更新谷歌host文件的简单程序 categories:
我以前就说过, 在中国做科研要求最高, 各种技能都要有, 科学上网就是其中之一. google时不时会抽风, 无法预料. 解决方法很多种, 其中最简单的就是改host文件, 使用最新可用的google hosts文件. 网上一直有人在更新这种文件, 其中一个是https://github.com/racaljk/hosts. 这里提供的google host文件一般都能使用. 可每次手动更新文件有点麻烦, 所以我就写了一个非常简单的autohotkey脚本来做这件事, 只要双击一下就可以自动更新了. 不过, 现在我不大需要这个脚本了, 但考虑到它对其他人或许还有点用处, 所以还是放在这里吧. 你可以直接下载我编译好的可执行文件gohost.exe, 以管理员权限运行, 然后打开https://www.google.com/ncr进行测试. 其实, 更新的host文件中不仅包括了google, 还包括了其他一些网站, 如facebook, youtube之类. 需要的话, 你也可以试试.
相应的源代码如下, 需要的可以参考
<table class="highlighttable"><th colspan="2" style="text-align:left">gohost.ahk</th><tr><td><div class="linenodiv" style="background-color: #f0f0f0; padding-right: 10px"><pre style="line-height:125%">1 2 3 4 5 6 7 8 9</pre></div></td><td class="code"><div class="highlight"><pre style="line-height:125%"><span></span>whr <span style="color: #666666">:=</span> <span style="color: #00A000">ComObjCreate</span>(<span style="color: #BB4444">"WinHttp.WinHttpRequest.5.1"</span>) whr<span style="color: #666666">.</span>Open(<span style="color: #BB4444">"GET"</span>, <span style="color: #BB4444">"https://raw.githubusercontent.com/googlehosts/hosts/master/hosts-files/hosts"</span>) whr<span style="color: #666666">.</span>Send() <span style="color: #AA22FF">FileDelete</span>, C<span style="color: #666666">:</span>\WINDOWS\system32\drivers\etc\hosts <span style="color: #AA22FF">FileAppend</span>, <span style="color: #666666">%</span> whr<span style="color: #666666">.</span>ResponseText, C<span style="color: #666666">:</span>\WINDOWS\system32\drivers\etc\hosts <span style="color: #AA22FF">run</span>, ipconfig <span style="color: #666666">/</span>flushdns, , Hide <span style="color: #AA22FF">msgbox</span>, hosts<span style="#FF0000">已经更新</span>, <span style="#FF0000">请使用</span> https<span style="color: #666666">://</span>www<span style="color: #666666">.</span>google<span style="color: #666666">.</span>com<span style="color: #666666">/</span>ncr <span style="#FF0000">打开谷歌测试</span> <span style="color: #AA22FF">run</span>, https<span style="color: #666666">://</span>www<span style="color: #666666">.</span>google<span style="color: #666666">.</span>com<span style="color: #666666">/</span>ncr</pre></div> </td></tr></table>另外, 使用google搜索得到的很多链接默认是http, 你有时可能无法打开. 如果这样的话, 建议你始终使用加密链接https, chrome浏览器和火狐浏览器都可以设置, 方法见强制 Google.com 域名使用 HTTPS(SSL).
此外, 还有一些google的镜像网站可以试试, 当然也不知道它们能坚持多久, 且用切珍惜吧.