SwitchHosts! v0.2 版发布

2012-10-15

去年写了一个快速切换 hosts 的软件 SwitchHosts!,这一年里接到很多反馈意见,综合考虑了大家的意见以及自己能投入的时间之后,我终于在它的 v0.1 版发布马上一周年之际发布了 v0.2 版。

新版本 SwitchHosts! 的截图见下面:

SwitchHosts! v0.2

项目源码见:https://github.com/oldj/SwitchHosts
下载:http://oldj.github.io/SwitchHosts/

这次升级主要的改进有:

1、改进界面;

  2、添加在线方案,允许用户引入网络上的 hosts 方案;

  3、支持方案导入及导出,方便分享自己的配置方案;

  4、优化语法高亮控件,修复渲染长 hosts 时闪屏的问题;

  5、修复程序在中文目录下无法运行的问题;

  6、支持 hosts 排序(拖拽排序);

希望大家喜欢这个新版本,也欢迎继续提意见!:-)

(2015-12-20 更新:SwitchHosts!第三版已发布。

分类: 编程 标签: Python 工具 SwitchHosts! wxPython
前一篇: 在JavaScript进行大整数计算
后一篇: 关于页面停留时间

相关文章:

评论:

xstar
在 2012-10-19 12:01 写道:

切换后查看Hosts里的注释中文显示为乱码,请这个怎么解决呢?

回复
oldj
在 2012-10-19 12:01 写道:

SwitchHosts! 在打开 hosts 文件时会尝试自动检测编码,保存时会统一使用用 utf-8 编码保存。可能是打开你的那个文件时检测编码出错了?这个应该是一次性的,你新写的中文注释应该不会再显示为乱码了。

回复
Charles
在 2012-10-26 01:25 写道:

非常喜欢新版本,老的版本闪得那是一个厉害,不影响使用,但是太闪了。新版棒极了!!但是,还是没有我要的功能,就是common host的功能,所以我fork了一个出来,自己加了这个功能。想请教一下楼主,怎样制作Windows绿色版,还望赐教,不胜感激。源代码地址为:https://github.com/charlestang/SwitchHosts

回复
oldj
在 2012-10-26 01:25 写道:

那个Common hosts的功能我也想过,但是没想好交互怎么设计,所以这个版本没做,我先参考下你的分支,嘿嘿。:-)
制作成exe文件可以使用py2exe或pyInstaller,我用的是pyInstaller。
比如你的pyInstaller目录在 D:toolspyinstaller-2.0,SwitchHosts!源码在 D:studioSwitchHosts,那么只需要在命令行下使用类似下面的命令就可以打包成绿色exe了:
D:toolspyinstaller-2.0> pyinstaller.py -w -F --icon=D:studioSwitchHostsuiimgicon_0.ico --name=SwitchHosts --out=D:studioSwitchHostsdist D:studioSwitchHostssrcSwitchHosts.py

回复
Charles
在 2012-10-26 22:10 写道:

我今天用py2exe折腾了一中午,硬是没有弄成功,太烦了,缺这缺那的。老说我缺少MSVCP90.dll,然后exclude dll,还是不行,后来下了个GUI2Exe,就是py2exe的UI版本,结果编出来了,但是不能运行……崩溃啊……希望尽快看到原作的功能,这样我这个山寨版就可以下岗了。我做完才看明白,原来host文件可以从云端下发,太先进了。我顿时就后悔了,应该把common host的功能设计成既支持云端,又支持本地,或者干脆用两个。那样更灵活。唉……等我学会打包再试试。

回复
Charles
在 2012-10-27 00:00 写道:

终于编译出来了,https://github.com/charlestang/SwitchHosts/downloads 到这里可以下载,内牛满面啊!!!谢谢老杰〜 XD

回复
dolly
在 2012-11-23 22:47 写道:

提示无权限修改 hosts 文件。程序在 D 盘根目录下,系统是 win 8 x64 英文版。
在 Win 7 下没有权限问题么?还是用之前都要手动获取 hosts 文件权限?

回复
oldj
在 2012-11-23 23:29 写道:

是以管理员权限运行的吗?

回复
victorwoo
在 2012-12-05 11:54 写道:

在线Host有没有推荐的地址?

回复
oldj
在 2012-12-05 22:43 写道:

还真没有,呵呵……

回复
victorwoo
在 2012-12-06 09:40 写道:

哎,老大牵头一下嘛,行情您最了解了,不然这个功能意义不是不大?

回复
dql
在 2016-02-22 09:54 写道:

我有个建议,直接从github上已有的hosts文件的raw文件下载。
现在填写一个raw文件提示url无法访问,我翻了一下源码,发现程序在判断url是否存在的时候,用的是head方式:connection.request("HEAD", path)
应该是github不接受head请求,希望这个地方改进下。
我是搞java的,不会python,但是能看懂。

回复
forest
在 2012-12-11 14:15 写道:

Python开发的必然好啊,可惜生态圈太小。。顶作者!
PS: 一年前我开发过一个Python应用程序,底层逻辑用py棒极了,可是前台展示却成了问题。当时我是用的Qt GUI,真的很受限制。wx一开始考虑过,但是总觉得不够漂亮就没去用。现在想通了,既然大家都往web里钻,当时真的应该做成个webapp的

回复
oldj
在 2012-12-11 23:01 写道:

WebAPP也有很多限制,比如切换系统hosts这个功能好像就很难做成WebAPP。貌似TideSDK不错,能兼有WebAPP的漂亮和Python的强大,不过和wx以及pyQt一样,打包之后的尺寸比较大。

回复
forest
在 2012-12-14 14:38 写道:

嘿嘿,我是说直接写一个简单的本地http server(或web service + 前台js)就好了,比如用web.py。这样你点击托盘图标的时候只要直接打开http://127.0.0.1:2012/就好了。

webApp对本地基本无权限,就算上了HTML5也无济于事。

回复
fx
在 2014-10-17 00:49 写道:

有chrome插件版本的

回复
绝望生鱼片
在 2012-12-13 12:45 写道:

建议加入开机启动最小化的功能!!还有同时应用多个HOST方案,

回复
绝望生鱼片
在 2012-12-13 14:46 写道:

在WIN8下,单击托盘的图标界面弹不出来,要双击才弹出来,建议增加全局自定义快捷键切换到指定方案!

回复
杨富平
在 2012-12-23 19:02 写道:

好东西,正需要!!老季出品,必是精品。。

回复
oldj
在 2012-12-23 23:09 写道:

多谢支持!:-D

回复
jdhosty
在 2012-12-25 18:27 写道:

我不知道common host 怎么弄,没有找到说明文档

回复
oldj
在 2012-12-25 18:31 写道:

最新版本的 SwitchHosts! 里,左边的列表最上面有一个“公用 hosts”选项,点击就可以看到公用 hosts(common hosts)内容,然后填写内容就可以了。

应用某个 hosts 方案时,公用 hosts 的内容会被自动添加在最前面。

回复
jdhosty
在 2012-12-25 18:45 写道:

刚立马去更新了,非常感谢作者,这是另一种的帮助文档,也是一个很好用的工具,非常感谢,向你致敬

回复
oldj
在 2012-12-25 19:11 写道:

感谢支持!:-)

回复
mlj
在 2013-01-23 13:30 写道:

同学 从其他HOST切换到 当前系统host时 貌似 当前系统host不太对吧

回复
郑哲友
在 2013-03-23 04:03 写道:

感谢分享这么好的作品,正需要这个工具。。

回复
SmallAnt
在 2013-04-09 16:25 写道:

您好!我是一名Ubuntu爱好者,接触Python不多,想要在Ubuntu 12.10上运行SwitchHosts! v0.2,从git上下载了您的程序。但无论是直接用Python 2.7.3直接运行SwitchHosts.py,还是根据提示先用pyinstaller打包后再运行,都有错误提示。
其中,直接运行SwitchHosts.py的提示为:
Traceback (most recent call last):
File "SwitchHosts.py", line 127, in
main()
File "SwitchHosts.py", line 123, in main
sh.run()
File "SwitchHosts.py", line 56, in run
taskbar_icon=self.taskbar_icon,
File "/home/dukeant/SwitchHosts/src/libs/MainFrame.py", line 71, in init
title or self.default_title, pos, size, style)
File "/home/dukeant/SwitchHosts/src/libs/ui.py", line 147, in init
self.m_textCtrl_content = self.makeTextCtrl(bSizer6)
File "/home/dukeant/SwitchHosts/src/libs/ui.py", line 224, in makeTextCtrl
txt_ctrl.SetMaxLength(0)
AttributeError: 'HostsCtrl' object has no attribute 'SetMaxLength'

用pyinstaller打包的命令为:
python pyinstaller.py -w -F --icon=/home/dukeant/SwitchHosts/src/img/logo.ico --name=SwitchHosts --out=/home/dukeant/SwitchHosts/src/dist /home/dukeant/SwitchHosts/src/SwitchHosts.py
运行打包生成的程序,报错为:
Traceback (most recent call last):
File "", line 127, in
File "", line 123, in main
File "", line 56, in run
File "/home/dukeant/SwitchHosts/src/dist/build/pyi.linux2/SwitchHosts/out00-PYZ.pyz/libs.MainFrame", line 71, in init
File "/home/dukeant/SwitchHosts/src/dist/build/pyi.linux2/SwitchHosts/out00-PYZ.pyz/libs.ui", line 147, in init
File "/home/dukeant/SwitchHosts/src/dist/build/pyi.linux2/SwitchHosts/out00-PYZ.pyz/libs.ui", line 224, in makeTextCtrl
AttributeError: 'HostsCtrl' object has no attribute 'SetMaxLength'
(dukeant是我自己的账户名)
不知道哪里出了问题,求教!

回复
oldj
在 2013-04-10 11:56 写道:

是不是wxPython的版本太低啊?你的wxPython是什么版本?

回复
SmallAnt
在 2013-04-10 22:03 写道:

Google了一下,还是不清楚如何查看wxPython版本?我找了一下,与wxPython有关的,我安装了python-wxtools 2.8.12.1-11ubuntu3.1。

回复
oldj
在 2013-04-10 22:26 写道:

在终端里输入类似这样的命令就可以看wxPython的版本了:

python -c "import wx;print(wx.version)"

我的是2.9.4.0版。用到了一些新特性,需要2.9版才能运行。

回复
SmallAnt
在 2013-04-10 22:48 写道:

的确,我用的是Ubuntu默认软件源里的2.8.12.1。下载了wxWidgets-2.9.4,正在研究如何安装……

回复
navy
在 2013-04-09 17:15 写道:

感谢分享,能把需要的wx,chardet,simplejson的包也放到代码里面么?O(∩_∩)O谢谢

回复
oldj
在 2013-04-10 11:55 写道:

wx太庞大了,chardet、simplejson等第三方包可以通过easy_install或pip安装啊。

回复
wiley
在 2014-06-19 18:50 写道:

我看了下在线配置方案,对于http下载这些Host信息,对服务器有什么要求吗?
我用一个txt去存放配置文件,结果URL无法访问的问题
但是我在浏览器里面又能正常打开,请问这是什么问题。有没有对在线配置方案有更加具体的介绍呢?

回复
kk
在 2014-10-12 14:08 写道:

很好用,,没权限不能保存,,,能加个 host 解锁功能吗,,
,HostsX有这个

回复
secrecy153
在 2014-10-28 18:20 写道:

新建“在线方案”的时候,提示“### URL无法访问! ###”

https://smarthosts.googlecode.com/svn/trunk/hosts
https://raw.githubusercontent.com/zxdrive/imouto.host/master/imouto.host.txt
这2个hosts可以在浏览器打开,但新建在线方案时总是提示URL无法访问。
是不支持https,还是不支持中文内容?

回复
oldj
在 2014-10-29 11:37 写道:

看了一下,问题应该是这样:

在下载在线URL之前,SwitchHosts!会先尝试快速地判断一下这个URL是否存在,因为如果直接去打开URL,并且这个URL刚好打不开的话,用户就会等待很久。

判断URL是否存在的方法是httpExist(url),它实际上是向站点的域名(根目录)发一个HEAD请求。你给的第一个链接没问题,但第二个链接的域名(https://raw.githubusercontent.com)不能直接访问,会返回404状态,所以SwitchHosts!以为这个链接无法访问。

简单来说是一个代码上的缺陷,我会在下一个版本修复,感谢反馈!

顺便问一下,你用的是Windows版还是Mac版啊?

回复
secrecy153
在 2014-11-04 14:01 写道:

Windows版

回复
ike
在 2017-02-08 11:33 写道:

你好,首先感谢你和你的SwitchHosts。
这两天用SwitchHosts时遇到了点问题,一直提示hosts未能成功切换,以前都是正常的,过完年回来就不行了。
版本是0.1.6.1755

回复
oldj
在 2017-02-08 13:08 写道:

你好,可能是操作系统更新了?

0.1.6.1755 已经很久不维护了,现在最新的版本是 3.2.3 ,可以在 这儿 下载,备用下载地址:百度网盘

回复
ike
在 2017-02-14 17:35 写道:

好的,感谢,我已经下载了最新的版本了。不过有点麻烦的事情,就是每次都需要使用管理员打开软件,双击打开软件无法修改hosts,我的系统是win7

回复
oldj
在 2017-02-14 21:18 写道:

Windows系统上需要有管理员权限的程序才能修改系统hosts文件,似乎没有什么好的办法……

一个不太好的方法是修改系统hosts文件的权限,让所有人都可读写。不过这样可能会带来安全隐患,一般不推荐这么做。

回复
puck
在 2017-07-17 16:39 写道:

windows的放弃了?

回复
oldj
在 2017-07-17 16:45 写道:

现在改用 Electron 来打包,有 Windows、Mac、Linux 版,可以从 https://github.com/oldj/SwitchHosts/releases 下载。

回复

发表评论:

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