06月11, 2013

地大校网防止IPV6掉线之方法

注意:这是一篇从旧博客恢复的文章。

原地址:http://freemeepo.com/acm/809.html & http://freemeepo.com/blog/archives/50

(在旧的两个博客上都发布了)


众所周知,地大校网使用的是深澜srun3000网关系统。登上IPV6网关之后,如果十几分钟不产生IPV6外网流量,则系统会自动注销IPV6网关,需要重新登录。这就让经常需要上google、wiki等网站的人非常困扰,因为这些网站支持IPV4/IPV6双通道,在有IPV6的情况下会自动使用IPV6通道,所以会直接跳转到网关登录界面,只能重新登录。

当然有种方法可以解决这个问题,那就是在本地连接里禁用IPV6。但是这样就用不了IPV6资源了……

我们应该很容易能想到一种方法,那就是每隔一段时间ping一次某个IPV6网站。如何自动完成这个任务并且对我们正常工作没有影响就成了问题的关键。

首先想到用C++的system函数调用CMD,并在网上找隐藏窗体的代码。结果以失败告终,窗口确实是隐藏了,但是在system函数调用CMD的时候,依然会跳出来命令行,也就是每隔一段时间跳出来一次命令行窗口。(用C++这个方法肯定可以实现的,只是我还没找到方法)

后来在网上查了很多资料,发现vbs是个不错的选择。查阅了一下VBS的基本语法,于是写出来如下代码。

Set ws = CreateObject("Wscript.Shell") 
do while 1
  ws.run "cmd /c ping ipv6.google.com",vbhide
  wscript.sleep 180000
loop

(每180000ms ping一次ipv6.google.com,这个可自行修改)

将以上代码写到文本文件里,扩展名为vbs。直接运行即可。

现在还剩最后一步了,那就是让它开机启动。一个很简单的方法就是创建一个快捷方式放到“启动”文件夹中,当然你也可以用修改注册表启动项的方法。

另外关于VBS。VBS运行会调用VBS解释器,进程是wscript.exe。

本文链接:https://debug.fanzheng.org/post/keep-ipv6-online-in-cugbnet.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。