一直使用谷歌搜索,大约在 4、5 月份时,突然用不了了,一时茫然。我知道 goagent,也用过赛风,然而网速实在慢,这些网上常见的免费方案基本用不了。于是尝试着看看必应如何,用了许多天感觉效率很低,尤其搜索结果中重复项很多(网络内容过度冗余)。
设置 VPN
一天在简书偶然看到免费VPN合集,随意点了进去。看到了 VPN,以前似乎都没尝试过这种方案,既然是免费的,不妨试试。
网友共享VPN
简介:免费美国VPN,支持PPTP,每2小时更换密码
这个不用注册,于是根据其中的设置教程在系统中设置好。此时,桌面上就出现了连接图标:
自动更新密码
这个 VPN 会间隔一段时间更换密码,这样我们也必须跟着更新才行:打开网友共享VPN,复制密码并粘贴到从桌面所打开连接的密码框中,然后连接。这操作虽然简单,但一直重复总是很烦。所以,看看能否 AutoHotkey! 于是,搜索“宽带连接 autohotkey”找到了 rasdial 命令,简单测试发现用这个命令操作是可行的:
rasdial "ilvpn" ilvpn.com uzBa4Kp5 /phone:172.245.220.181 /phonebook:"C:\Documents and Settings\All Users\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk"
这里,ilvpn 是刚才建立的宽带连接名称,rasphone.pbk 是我系统中的 pbk 文件,不清楚其他系统如何,可考虑用 Everything 搜索。 现在要用 AutoHotkey 实现的操作就很简单了:断开当前 VPN 连接,从网页上获取新密码再次连接。定时或在需要时手动执行这个操作就行了。
#Persistent
Settimer, AutoUpdate, % 50 * 60 * 1000 ; 设置为 50 分钟时自动更换。
GoSub, AutoUpdate
Return
F1:: ; 根据自己的情况自定义。
AutoUpdate:
Run, %ComSpec% /c rasdial "ilvpn" /disconnect,, Hide
sUrl := "http://172.245.220.181/mm.txt"
oWinHttp := ComObjCreate("WinHttp.WinHttpRequest.5.1") ; WinHttpRequest Object Reference: http://msdn.microsoft.com/en-us/library/windows/desktop/aa384109
oWinHttp.Open("GET", sUrl, True)
oWinHttp.Send()
If (oWinHttp.WaitForResponse(-1) <> -1)
{
MsgBox, 获取失败,稍后继续尝试。
Sleep, 5000
GoSub, AutoUpdate
}
sPassword := SubStr(oWinHttp.ResponseText, 1, 8)
RunWait, %ComSpec% /c rasdial "ilvpn" ilvpn.com %sPassword% /phone:172.245.220.181 /phonebook:"C:\Documents and Settings\All Users\Application Data\Microsoft\Network\Connections\Pbk\rasphone.pbk",, Hide
Return
其中 http://172.245.220.181/mm.txt
是从源码分析而得。
这里手动按个热键代替计时器也很方便了,还可以执行 rasdial 从结果判断当前是否连接了 VPN 实现智能连接(在断线时自动重连,常常不清楚什么原因就断线了)。看个人的需要。
其他
- 有“纯 ahk”情节的朋友考虑同名的 RasDial 函数,新手忽略吧;
- 经常需要的朋友不妨购买支持,免费东西的背后是别人默默的付出;
- 后来找到了无需穿墙即可使用的谷歌搜索(知乎的问题找不到了),偶尔才有需要;
一开始使用这个 VPN 时是两小时更换一次密码的,6 月中旬当机了一次,现在更新时间变成一小时了(有这个脚本一分钟一次都不会有压力)。好好珍惜吧,有更好的方案记得分享~最后老生常谈一次:VPN 有风险,使用需谨慎