发布一个快捷切换 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! 新版本已经发布,欢迎下载!

分类:编程标签:SwitchHostswxPython工具产品Python
学习 GTD

相关文章:

评论:

自由国度

不错,

rentj

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

oldj

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

root

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

flyinhigh

不能copy感觉不是很爽。

funux

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

oldj

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

funux

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

chuanyi

很不错的小工具~

lemon

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

yjoogle

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

oldj

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

hun99

win7 64bit 无法运行

oldj

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

TooBug

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

oldj

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

maotou

win7 32bit打开出现自动退出

oldj

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

Firefly

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

ddeedde

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

馄饨s

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

get8848

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

einverne

Win7没反应

einverne

Win7 64位 等等吧,能用的

oldj

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

tepzepi

win7 x64 运行失败

oldj

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

mewing

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

kenzen

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

sdf

win7/32位无法启动程序

oldj

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

xixi

xp没反应

xixi

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

oldj

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

jkela

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

oldj

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

赌客

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

cvmcau

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

oldj

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

cvmcau

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

funux

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

Happy Daniel

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

hidehai

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

lin04com

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

oldj

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

Fache.T

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

江南草

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

benx203

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

t1986

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

chuan

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

小歪

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

smablack

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

麦子猪

神器~~

英布

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

oldj

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

libran

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

libran

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

andy zhang

不错,感谢

bimbom@byom.de

Would love to have this tool in english language!

oldj

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

robin

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

oldj

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

飘飘

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

蒜头

11年的贴

带我去

挖到了个坟 = =

发表评论: