快速切换IPv4/IPv6 host的脚本

来源:http://logicmd.net/2011/06/a-script-quickly-switch-ipv4-ipv6-host/

这篇文章讲了一些Google等国外网站IPv6 host列表。使用它们速度更快,更无束缚。但是如果在一个IPv6经常坏掉的校园网,或者需要经常移动到没有IPv6的网络中,一个切换IPv4/IPv6 host列表的脚本无疑很重要。

Windows平台

Window平台中host列表存放在 %windir%\System32\drivers\etc,我们规定IPv6的hosts存放在hosts.v6,IPv4的hosts存放在hosts.v4,处于其中一个状态时其内容存放在hosts文件中,使用如下batch则可以完成hosts状态的判断。

::	Description: ::	  This batch is used to switch host files from ipv4 to ipv6 or the other.  @ECHO OFF SET FileLocation=%WINDIR%\System32\drivers\etc SET IPV4FileName=hosts.v4 SET IPV6FileName=hosts.v6 SET TargetFileName=hosts  :: If host.ipv6 exits, switch to IPV6, else switch to IPV4 IF EXIST %FileLocation%\%IPV6FileName% (  	:: Switch to IPV6 	CHOICE /M "Swithed to IPv6?" /T 0020 /D N 	IF ERRORLEVEL 2 GOTO END 	IF ERRORLEVEL 1 ECHO Successfully Switched to IPv6 Hosts!  	REN %FileLocation%\%TargetFileName% %IPV4FileName% 	REN %FileLocation%\%IPV6FileName% %TargetFileName%  ) ELSE IF EXIST %FileLocation%\%IPV4FileName% (  	:: Switch to IPV4 	CHOICE /M "Swithed to IPv4?" /T 0020 /D N 	IF ERRORLEVEL 2 GOTO END 	IF ERRORLEVEL 1 ECHO Successfully Switched to IPv4 Hosts!  	REN %FileLocation%\%TargetFileName% %IPV6FileName% 	REN %FileLocation%\%IPV4FileName% %TargetFileName%  )  PAUSE EXIT  :END ECHO Nothing changed!

Windows vista和 Windows 7系统中,有用户帐户控制(UAC),总是右键去点击使用管理员权限执行会麻烦,一个解决方案是使用Quick batch file compiler将其编译成exe,然后设定成总是需要管理员权限即可。
最终生成的是SwitchHosts.exe文件。

Linux平台

Linux平台中host列表存放在 \etc,我们做同样的文件名规定。

#!/bin/bash #Description: #This scripts is used to switch host files from ipv4 to ipv6 or the other. if [ -f /etc/hosts.v6 ] # Now using ipv4 mode then 	sudo cp /etc/hosts /etc/hosts.v4 	sudo cp /etc/hosts.v6 /etc/hosts 	sudo rm -f /etc/hosts.v6 	echo "Successfully switched to ipv6 hosts!" elif [ -f /etc/hosts.v4 ] # Now using ipv6 mode then 	sudo cp /etc/hosts /etc/hosts.v6         sudo cp /etc/hosts.v4 /etc/hosts         sudo rm -f /etc/hosts.v4 	echo "Successfully switched to ipv4 hosts!" else 	echo "ERROR! No Backup File is found!" fi 

最后

chmod switch 644 cp ./switch /usr/bin

之后直接在terminal中输入switch即可~
在Ubuntu 10.04测试通过。
EOF


―――――――――――――――――――――――――――――――――――――――――

需要翻墙利器? 请安装Wuala,查找和添加gfwblog为好友,就可高速下载翻墙软件,或访问http://tinyurl.com/gfwblog直接下载。

推特用户请点击这里免翻墙上推特

请点击这里下载翻墙软件

更多翻墙方法请发电邮(最好用Gmail)到:fanqiang70ma@gmail.com

请阅读和关注中国数字时代、翻墙技术博客GFW BLOG(免翻墙)

请使用Google Reader订阅中国数字时代中文版http://chinadigitaltimes.net/chinese/feed),阅读最有价值的中文信息;以及GFW BLOG(功夫网与翻墙)http://feeds2.feedburner.com/chinagfwblog,获取最新翻墙工具和翻墙技巧信息。


没有评论: