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

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

Windows平台

Window平台中host列表存放在 %windir%System32driversetc,我们规定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%System32driversetc 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

本文由自动聚合程序取自网络,内容和观点不代表数字时代立场

定期获得翻墙信息?请电邮订阅数字时代