利用 bat 文件制作 HOSTS 快速切換器
更新時間:2012年10月27日 11:15:24 作者:
在平時每天需要切換好幾次 HOSTS 文件,那有什么辦法可以簡化這個操作
切換 HOSTS 文件的困擾
學校里的 IPV6 免費上,而 IPV6 下是不用翻墻的,但是有但是 IPV6 下,有一些網(wǎng)站雖然有 IPV6 的 IP 但是卻沒有域名… 所以也只能通過修改 HOSTS 文件來訪問。
另外在 IPV4 下,Google 的許多服務都需要通過修改 HOSTS 文件后才能正常訪問…
所以,在平時每天需要切換好幾次 HOSTS 文件。
那有什么辦法可以簡化這個操作?
HOSTS 切換軟件
上網(wǎng)搜索了很多軟件,但是都不是很好用,甚至都有沖動自己做一個了。
設(shè)計的邏輯基本上是這樣的:
1、軟件保存了很多域名的 IP 地址,并且每個域名擁有一個 IPV4 地址和一個 IPV6 地址(會根據(jù)網(wǎng)路情況自動判斷)
2、軟件可以保存很多方案,每點擊一個方案可以執(zhí)行一系列操作,例如:1、清空 HOSTS;2、增加 XXX,又例如:1、不對當前 HOSTS 進行修改;2、禁用 XXX
這樣子可以非常自由的控制 HOSTS 文件了。
解決方案
有一次突然想到,干嘛要這么麻煩呢?把不同的 HOSTS 文件備份一下,需要哪個就復制過去不就行了?
還是很麻煩?直接寫 bat 文件不就行了嗎?雖然不能實現(xiàn)上述的高級功能,但是也可以滿足日常需要了。
1、新建不同的 HOSTS 方案

這里我新建了三個,一個是空的,一個是 IPV4 下的,一個是 IPV6 下的
2、開始寫 bat 文件
@echo *****************
@echo * HOSTS 切換器 *
@echo * 1--清空 *
@echo * 2--IPV4 *
@echo * 3--IPV6 *
@echo *****************
@choice /c 123
if errorlevel 3 goto IPV6
if errorlevel 2 goto IPV4
if errorlevel 1 goto CLEAR
:CLEAR
copy /y "C:\Windows\System32\drivers\etc\hosts.ics" "C:\Windows\System32\drivers\etc\HOSTS"
goto END
:IPV4
copy /y "C:\Windows\System32\drivers\etc\hosts.ipv4" "C:\Windows\System32\drivers\etc\HOSTS"
goto END
:IPV6
copy /y "C:\Windows\System32\drivers\etc\hosts.ipv6" "C:\Windows\System32\drivers\etc\HOSTS"
goto END
:END
這里非常容易理解,按照上面寫就行了
3、遺留問題
這里還有一個問題,操作 HOSTS 是非常危險的(殺毒軟件是這么認為的)
所以不可避免的會彈出警告窗口,沒辦法,忽略之,并添加到白名單即可
學校里的 IPV6 免費上,而 IPV6 下是不用翻墻的,但是有但是 IPV6 下,有一些網(wǎng)站雖然有 IPV6 的 IP 但是卻沒有域名… 所以也只能通過修改 HOSTS 文件來訪問。
另外在 IPV4 下,Google 的許多服務都需要通過修改 HOSTS 文件后才能正常訪問…
所以,在平時每天需要切換好幾次 HOSTS 文件。
那有什么辦法可以簡化這個操作?
HOSTS 切換軟件
上網(wǎng)搜索了很多軟件,但是都不是很好用,甚至都有沖動自己做一個了。
設(shè)計的邏輯基本上是這樣的:
1、軟件保存了很多域名的 IP 地址,并且每個域名擁有一個 IPV4 地址和一個 IPV6 地址(會根據(jù)網(wǎng)路情況自動判斷)
2、軟件可以保存很多方案,每點擊一個方案可以執(zhí)行一系列操作,例如:1、清空 HOSTS;2、增加 XXX,又例如:1、不對當前 HOSTS 進行修改;2、禁用 XXX
這樣子可以非常自由的控制 HOSTS 文件了。
解決方案
有一次突然想到,干嘛要這么麻煩呢?把不同的 HOSTS 文件備份一下,需要哪個就復制過去不就行了?
還是很麻煩?直接寫 bat 文件不就行了嗎?雖然不能實現(xiàn)上述的高級功能,但是也可以滿足日常需要了。
1、新建不同的 HOSTS 方案

這里我新建了三個,一個是空的,一個是 IPV4 下的,一個是 IPV6 下的
2、開始寫 bat 文件
復制代碼 代碼如下:
@echo *****************
@echo * HOSTS 切換器 *
@echo * 1--清空 *
@echo * 2--IPV4 *
@echo * 3--IPV6 *
@echo *****************
@choice /c 123
if errorlevel 3 goto IPV6
if errorlevel 2 goto IPV4
if errorlevel 1 goto CLEAR
:CLEAR
copy /y "C:\Windows\System32\drivers\etc\hosts.ics" "C:\Windows\System32\drivers\etc\HOSTS"
goto END
:IPV4
copy /y "C:\Windows\System32\drivers\etc\hosts.ipv4" "C:\Windows\System32\drivers\etc\HOSTS"
goto END
:IPV6
copy /y "C:\Windows\System32\drivers\etc\hosts.ipv6" "C:\Windows\System32\drivers\etc\HOSTS"
goto END
:END
這里非常容易理解,按照上面寫就行了
3、遺留問題
這里還有一個問題,操作 HOSTS 是非常危險的(殺毒軟件是這么認為的)
所以不可避免的會彈出警告窗口,沒辦法,忽略之,并添加到白名單即可
相關(guān)文章
Bootcfg 配置、查詢或更改 Boot.ini 文件設(shè)置
Bootcfg 配置、查詢或更改 Boot.ini 文件設(shè)置...2007-09-09批處理中屏蔽錯誤信息 nul 2>nul 的用法 (cmd>nul空格2>nul)
批處理中屏蔽錯誤信息這個 >nul 2>nul 可以屏蔽一切屏幕的輸出可以這樣理解2012-06-06