利用 bat 文件制作 HOSTS 快速切换器
程序员文章站
2022-07-04 17:36:19
切换 hosts 文件的困扰 学校里的 ipv6 免费上,而 ipv6 下是不用*的,但是有但是 ipv6 下,有一些网站虽然有 ipv6 的 ip 但是却没有域名… 所...
切换 hosts 文件的困扰
学校里的 ipv6 免费上,而 ipv6 下是不用*的,但是有但是 ipv6 下,有一些网站虽然有 ipv6 的 ip 但是却没有域名… 所以也只能通过修改 hosts 文件来访问。
另外在 ipv4 下,google 的许多服务都需要通过修改 hosts 文件后才能正常访问…
所以,在平时每天需要切换好几次 hosts 文件。
那有什么办法可以简化这个操作?
hosts 切换软件
上网搜索了很多软件,但是都不是很好用,甚至都有冲动自己做一个了。
设计的逻辑基本上是这样的:
1、软件保存了很多域名的 ip 地址,并且每个域名拥有一个 ipv4 地址和一个 ipv6 地址(会根据网路情况自动判断)
2、软件可以保存很多方案,每点击一个方案可以执行一系列操作,例如:1、清空 hosts;2、增加 xxx,又例如:1、不对当前 hosts 进行修改;2、禁用 xxx
这样子可以非常*的控制 hosts 文件了。
解决方案
有一次突然想到,干嘛要这么麻烦呢?把不同的 hosts 文件备份一下,需要哪个就复制过去不就行了?
还是很麻烦?直接写 bat 文件不就行了吗?虽然不能实现上述的高级功能,但是也可以满足日常需要了。
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 下,有一些网站虽然有 ipv6 的 ip 但是却没有域名… 所以也只能通过修改 hosts 文件来访问。
另外在 ipv4 下,google 的许多服务都需要通过修改 hosts 文件后才能正常访问…
所以,在平时每天需要切换好几次 hosts 文件。
那有什么办法可以简化这个操作?
hosts 切换软件
上网搜索了很多软件,但是都不是很好用,甚至都有冲动自己做一个了。
设计的逻辑基本上是这样的:
1、软件保存了很多域名的 ip 地址,并且每个域名拥有一个 ipv4 地址和一个 ipv6 地址(会根据网路情况自动判断)
2、软件可以保存很多方案,每点击一个方案可以执行一系列操作,例如:1、清空 hosts;2、增加 xxx,又例如:1、不对当前 hosts 进行修改;2、禁用 xxx
这样子可以非常*的控制 hosts 文件了。
解决方案
有一次突然想到,干嘛要这么麻烦呢?把不同的 hosts 文件备份一下,需要哪个就复制过去不就行了?
还是很麻烦?直接写 bat 文件不就行了吗?虽然不能实现上述的高级功能,但是也可以满足日常需要了。
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 是非常危险的(杀毒软件是这么认为的)
所以不可避免的会弹出警告窗口,没办法,忽略之,并添加到白名单即可