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

2011-10-20

日常开发工作中,我们可能经常需要切换各种 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! 新版本已经发布,欢迎下载!

分类: 编程 标签: Python 工具 SwitchHosts! wxPython
前一篇: 关于让浏览器自动刷新
后一篇: 学习GTD

相关文章:

评论:

自由国度
在 2011-10-21 05:16 写道:

不错,

回复
rentj
在 2011-10-21 08:46 写道:

工具不错,可下载后,运行没反映 win2003 系统,是不是要装python环境?

回复
oldj
在 2011-10-21 08:46 写道:

不需要安装 python 环境,我只在 XP 和 Win7 下测试过,Win2003 可能有些特别?

回复
root
在 2011-10-21 09:49 写道:

这个,我的中文注释在程序里成乱码了。。。。#ÓĹżáÍř

回复
flyinhigh
在 2011-10-21 10:30 写道:

不能copy感觉不是很爽。

回复
funux
在 2011-10-21 16:14 写道:

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

回复
oldj
在 2011-10-21 16:14 写道:

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

回复
funux
在 2011-10-21 16:16 写道:

忘了说,测试hosts文件来自https://docs.google.com/Doc?docid=0ARhAbsvps1PlZGZrZG14bnRfNjFkOWNrOWZmcQ谢谢!

回复
chuanyi
在 2011-11-02 09:28 写道:

很不错的小工具~

回复
lemon
在 2011-11-07 04:48 写道:

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

回复
yjoogle
在 2011-11-15 17:16 写道:

为什么我在win7 64bit下打开它就自动退出了?看

回复
oldj
在 2011-11-15 17:16 写道:

是不是放到中文目录下了?

回复
hun99
在 2011-11-18 18:08 写道:

win7 64bit 无法运行

回复
oldj
在 2011-11-18 18:08 写道:

是不是放到中文目录下了?

回复
TooBug
在 2011-11-22 10:34 写道:

XP无法运行,点击了没反应

回复
oldj
在 2011-11-22 10:34 写道:

是不是放到中文目录下了?换到英文目录下试试呢?

回复
maotou
在 2011-12-14 09:42 写道:

win7 32bit打开出现自动退出

回复
oldj
在 2011-12-14 09:42 写道:

是不是放到中文目录下了?换到英文目录下试试呢?

回复
Firefly
在 2011-12-14 10:09 写道:

如果支持命令行参数,那就更酷了!

回复
ddeedde
在 2011-12-14 10:22 写道:

好大~~~本人还是用自己的批处理切换hosts吧。。。

回复
馄饨s
在 2011-12-14 11:07 写道:

小工具啊… 还是选用 Tk 会具备更强适用性和更轻量吧…

回复
get8848
在 2011-12-14 11:07 写道:

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

回复
einverne
在 2011-12-14 12:23 写道:

Win7没反应

回复
einverne
在 2011-12-14 12:24 写道:

Win7 64位 等等吧,能用的

回复
oldj
在 2011-12-14 12:24 写道:

是不是放到中文目录下了?换到英文目录下试试呢?

回复
tepzepi
在 2011-12-14 12:46 写道:

win7 x64 运行失败

回复
oldj
在 2011-12-14 12:46 写道:

是不是放到中文目录下了?换到英文目录下试试呢?

回复
mewing
在 2011-12-14 13:18 写道:

加载比较大的文件(100kb以上,大约4000行左右)效率会特别低……

回复
kenzen
在 2011-12-14 13:19 写道:

民工最懂民工的需要,这东西太好了

回复
sdf
在 2011-12-14 13:26 写道:

win7/32位无法启动程序

回复
oldj
在 2011-12-14 13:26 写道:

是不是放到中文目录下了?换到英文目录下试试呢?

回复
xixi
在 2011-12-15 09:41 写道:

xp没反应

回复
xixi
在 2011-12-15 09:55 写道:

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

回复
oldj
在 2011-12-15 09:55 写道:

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

回复
jkela
在 2011-12-15 20:00 写道:

switchhosts.exe 正试图连接网络 地址:207.97.227.239端口:https(443)这是自动更新?

回复
oldj
在 2011-12-15 20:00 写道:

是的,这是 github.com 的地址,这个请求是用于启动时自动取得 github 上的 README 中写的最新稳定版本号。

回复
赌客
在 2011-12-24 14:27 写道:

博主啊,求云梯hosts啊,你懂的~~

回复
cvmcau
在 2012-01-12 21:15 写道:

博主你好“hosts未能成功切换!”这个错误怎么解决?

回复
oldj
在 2012-01-12 21:15 写道:

一般来说,应该是没有修改 hosts 文件的权限?你看 hosts 文件的内容有没有被修改呢?

回复
cvmcau
在 2012-01-12 21:17 写道:

不好意思忘了说运行环境了win7 64bit 管理员英文路径

回复
funux
在 2012-02-14 22:39 写道:

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

回复
Happy Daniel
在 2012-02-18 13:28 写道:

挺好的,用了有一段时间了。

回复
hidehai
在 2012-03-06 23:44 写道:

不错。firefox下有hostadmin。测试一下在chrome下是否能即时切换host3Q!

回复
lin04com
在 2012-03-30 13:44 写道:

用起来挺方便,只是chrome不能立即切换

回复
oldj
在 2012-03-30 13:44 写道:

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

回复
Fache.T
在 2012-04-20 14:33 写道:

win7 英文版,英文目录 64bit 管理员账户 真的闪退啊。博主。。。帮帮我啊。。

回复
江南草
在 2012-05-06 19:44 写道:

有个问题……我的hosts怎么都切换不了……请问在哪里改啊?

回复
benx203
在 2012-07-10 17:50 写道:

建议增加多选功能,就是可以选择或去掉多个配置项应用到HOSTS文件里。

回复
t1986
在 2012-09-03 13:38 写道:

双系统的话,只能识别c盘中的hosts进行修改……

回复
chuan
在 2012-09-07 19:04 写道:

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

回复
小歪
在 2012-09-22 16:17 写道:

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

回复
smablack
在 2012-10-22 22:17 写道:

提示没有权限修改hosts,手动是可以更改的,什么情况(用的是最新版的)

回复
麦子猪
在 2013-05-13 09:33 写道:

神器~~

回复
英布
在 2013-05-16 11:32 写道:

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

回复
oldj
在 2013-05-16 11:37 写道:

没有遇到过,能发个截图到我邮箱么?谢谢……

回复
libran
在 2014-03-12 13:58 写道:

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

回复
libran
在 2014-03-12 14:01 写道:

明白了,只要以管理员身份运行即可!^_^

回复
andy zhang
在 2015-05-13 09:37 写道:

不错,感谢

回复
bimbom@byom.de
在 2016-02-18 23:29 写道:

Would love to have this tool in english language!

回复
oldj
在 2016-02-19 10:45 写道:

If you use Mac, just try the latest version: http://oldj.github.io/SwitchHosts/. :)

回复
robin
在 2017-03-08 11:44 写道:

哥,用了最新版的3.2.2 mac不支持复制,粘贴,能搞吗?不能粘贴很蛋疼呢

回复
oldj
在 2017-03-08 13:49 写道:

具体一点呢?编辑器里应该是支持复制、粘贴的啊…

回复
飘飘
在 2017-07-29 15:31 写道:

window7更新后提示没有权限,以管理员权限运行也没有权限

回复
蒜头
在 2019-09-22 11:53 写道:

11年的贴

回复

发表评论:

电子邮件地址不会被公开。 必填项已用 * 标注。