发布一个快捷切换hosts的小工具:SwitchHosts!

日常开发工作中,我们可能经常需要切换各种 hosts 绑定,比如在本地开发时可能需要一个开发环境的 hosts 绑定方案,发布到测试环境后又有一个测试环境的 hosts 绑定方案,然后可能还有一个预发布环境,最后可能才是真实的线上环境。本地开发过程中,还可能有多组不同的 hosts 需要绑定,比如前端开发环境,数据库对应的开发环境……。其结果就是,我们经常需要在各个 hosts 绑定之间切换,这会花掉不少时间,而且这个过程毫无乐趣可言。

同事介绍过几个切换 hosts 方案的小工具,但看起来都不是很好,于是抽空自己动手做了一个小工具: SwitchHosts!

这个工具是使用 Python + wxPython 开发的,因此在 Windows / Linux / Mac 上都可以运行。不过由于不熟悉 Linux 和 Mac 下 Python 的打包及编译,目前只提供了 Windows 下的二进制可执行文件下载,Linux 及 Mac 用户在配置好环境(Python / wxPython / chardet)后可以直接运行源码。当然,也非常欢迎熟悉 Linux 或 Mac 平台下的 Python 的大侠帮忙制作一个 Linux 或 Mac 版的可执行文件。:-)

程序在 Windows 下的运行截图如下:

SwitchHosts!

程序还可以最小化到系统托盘,在托盘图标的右键菜单上也可以快速切换各 hosts 方案:

系统托盘

感谢 黑三小马 勇敢地做了这个程序的小白鼠并提出了不少意见。

你可以在 GitHub 上查看或下载 SwitchHosts! 的源码。Windows 用户也可以直接下载下面的绿色可执行版本:

Windows 绿色版本下载:http://oldj.github.io/SwitchHosts/

欢迎各位下载使用这个小工具,如果有什么问题或发现了 bug,欢迎在这儿或 GitHub 上给我留言。:-)

注意:请尽量不要将本程序放到中文目录下,不然可能不能运行… (感谢网友 xixi 的提醒)

注意:SwitchHosts! 新版本已经发布,欢迎下载!

63 Replies to “发布一个快捷切换hosts的小工具:SwitchHosts!”

  1. 谢谢博主!使用的时候好像有点问题:hosts文件如果特别长,粘贴的时候会截断。是不是有最大长度限制?而且粘贴速度很慢,看起来是逐行刷新的。我的操作系统:Window 7 x64,管理员身份运行。主要想修改hosts文件使用IPV6番羽土啬,但是工作环境经常在WIFI跟有线之间切换,而WIFI路由下只支持teredo ipv6隧道。这样一个快速切换hosts的工具就很好用了。不知道是否能解决这个问题,谢谢!

    1. 不好意思,最近一直在忙别的事。那个 “hosts文件如果特别长,粘贴的时候会截断”的问题在最新的源码中已经修复了,稍后会发布新的打包版本。
      逐行刷新的问题我会再研究一下…

  2. 工具的确很方便,不过编码转化上似乎有点问题:若添加到host中有中文注释的话,会显示为乱码。不过不影响使用,还是很不错的

  3. ImportError: No module named wxImportError: No module named chardet少wxPython,chardetwindows一般没装这2模块,下载安装上就能运行了

  4. 知道不能运行的原因了,只能在英文目录下使用1753显示不完全,我的hosts有将近一万五千行,这个只能显示到1200行左右看到新版的源码,可惜不知道怎么编译

    1. 非常感谢你指出在中文目录下无法运行的问题!我开发、测试都是在英文目录下进行的,碰巧周围几个帮我测试的同事也都是在英文目录下测试,因此虽然之前有人报告不能运行,但一直没有找到原因。
      支持长 hosts 文件的新版本我已经编译上传了,现在你重新下载的话就是最新版本。不过在渲染长 hosts 文件的时候效率还是有点问题,建议通过系统托盘的右键菜单切换长 hosts 方案…

  5. 旧版本没问题,新版本运行后会自动退出,与楼上大家所说情况一致。Windows 7 x64系统。管理员账户,英文路径。希望博主有时间可以看看,谢谢~~

    1. 这个工具其实就是修改系统的 hosts 文件,chrome 应该是可以立刻切换的,IE 默认情况下要把窗口全部关闭再打开才可以。

  6. 建议增加一个global的hosts,无论切换到哪个hosts这个global都会生效,用来存放一些跟开发无关的hosts配置,例如视频网站的屏蔽hosts

  7. 夸奖一下博主,做了一个这么好用的工具这东西非常适合用在需要频繁切换几套环境的场合,例如说像我们公司几套测试环境和现网环境来回切,特别是运营的小盆友们对host一无所知,以前做的批处理脚本被他们拒绝使用,说太复杂了看起来头晕。幸好发现了SwitchHosts!,解决了一个大麻烦,只需要右键选择某一个环境就可以立刻切换过去,简直是完美的解决方案。不过还是有一个小问题一直困扰着我,我把host文件放在一台局域网的服务器上,由于每一个有SwitchHosts!客户端的人都能够在软件界面里对内容进行修改,经常被一些小白童鞋误修改其中的内容,非常恼火,望能解决。

  8. 在MAC下之前使用是OK的,这几天启动时弹出 SwtichHosts Error,老杰这个有遇到过吗?求解决方案。

  9. 我使用的是win8,运行后右下角是有一个小图标,但是点击无反应。难道是不支持win8么?

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s