pyproxyswitch——一个Python写的快速代理切换程序
简介
PyProxySwitch(PPS)是一个跨平台的代理切换程序,本程序的主要结构是 本地代理服务器(基于3proxy/polipo/iprelay) + 快速切换父级代理(基于Python+wxPython),实现快速切换各种应用程序(如浏览器等)的代理设置。
用法
解压后运行PyProxySwitch.exe(Windows版本),或者src下的PyProxySwitch.pyw(源代码版本),然后把浏览器或其他需要设置代理的程序的代理设置为127.0.0.1:8888,右击右下角系统托盘中的图标即可快速切换代理。
cfg目录下的配置文件config.conf中可以定义菜单项,3proxy/polipo目录下是各个菜单项对应的配置文件,自带的几个仅是作者自用的代理设置,用户可根据需要进行自定义,其中最主要的是父级代理parentProxy的设置,其他更高级的用法可参见3proxy/polipo/iprelay各自的文档。
批量添加代理【新】
使用src目录下的batch_add_proxy.bat文件(Windows平台),将要各个代理以“名称 地址:端口”的形式(若代理需要认证,则用“名称 地址:端口 用户名:密码”的形式),每行一个,名称不要使用特殊字符/标点符号,最好使用字母、数字和下划线等,如:
test1 test.com:80 或
test2 1.2.3.4:8080
test3 test.com:80 user:pass (可参考自带的proxy.txt的示例)
添加到src目录下的proxy.txt文件中,双击batch_add_proxy.bat即可批量导入代理。
批量删除代理
使用bin下的pps_config,用法:pps_config del 代理名称1 代理名称2 代理名称3 ……
例如 pps_config del test1 test2
自定义代理及菜单项
使用pps_config(py源代码或者exe可执行文件)【推荐】
pps_config 是PyProxySwitch(PPS)的配置程序,可以为PPS添加或者删除代理
用法:
添加代理(仅支持添加单个代理,批量添加请使用src目录下的batch_add_proxy.bat,其用法请见README_CN.txt):
pps_config add 代理名称 代理地址:端口 用户名:密码
代理名称可以是自定义的任何名字,[用户名:密码]仅用于需要认证的代理,一般情况下不需要,可省略
例如:pps_config add test1 test1.com:8080
pps_config add test2 test2.com:8080 user:pass
或者:pps_config add test3 1.2.3.4:80
删除代理(支持批量删除):
pps_config del 代理名称1 代理名称2 …
例如:pps_config del test1
pps_config del test1 test2 test3
【不推荐】手动设置代理及菜单项
以polipo为例,比如你的代理地址是1.2.3.4:80
打开cfg / polipo目录下一个配置文件,例如CNC.conf,找到类似这一行 parentProxy = “202.201.0.149:8080″,将其改为你的代理地址:parentProxy = “1.2.3.4:80″,保存
然后把CNC.conf改为你想要的名称,例如proxy1.conf
修改cfg/config.conf文件,找到“CFG_polipo = ” ,将它后面的’CNC’: [‘CNC’],改为’你想要的菜单项名称’:’配置文件名称(不加.conf)’,例如 ‘MyProxy1′:’proxy1’
退出,重新启动PyProxySwitch,右键,就可以切换到你新添加的代理了。
若用的是3proxy,则要修改cfg/3proxy目录下的对应文件中的parent 1000 http 1.2.3.4 80为 parent 1000 http 地址 端口 的形式
默认的本地代理程序是polipo(支持内容缓存,功能强大),另外还有3proxy(支持DNS缓存,不支持内容缓存,功能强大)和ip_relay(仅是端口转发,本身无代理功能)
系统要求
源代码版本:Python2.5以上(不支持Python3),和wxPython组件 (32位 Arch Linux 2009.08 + Python2.6 , Slackware 13.0 + Python2.5 ,Windows XP sp3 + Python2.6 下测试通过)
Windows可执行文件版本:32位 Windows XP/Vista (其他系统未测试)
【注意】Windows版需要VC2008运行库vcredist才能运行。如果第一次运行时出现错误,请到以下地址下载并安装2008的vcredist:http://www.ziddu.com/download/6154897/2008vcredist_x86.exe.html
感谢
本程序用到了以下三个开源软件的二进制文件:
3proxy: http://www.3proxy.ru/
polipo: http://www.pps.jussieu.fr/~jch/software/polipo/
iprelay:http://iprelay.sourceforge.net/
(它们的许可请见licenses目录)
以及eurasiahttp://code.google.com/p/eurasia/项目中的pyetc模块(Python源代码,New BSD License)
更新历史
1.0.9 因为部分杀软报3proxy.exe为可疑软件,将Windows版3proxy.exe移除,保留Linux版的3proxy;并将polipo设置为默认代理切换程序。
同时,Windows版本暂缓更新,需要的朋友可以用PyProxySwitch自动编译/打包脚本(bat批处理)自助打包, 需要Python2.6以上(Python3.x暂不支持)+py2exe+wxPython。下载:http://code.google.com/p/pyproxyswitch/downloads/detail?name=pps_building.zip 2010-4-15
1.0.8 将所有文件的编码改为UTF-8,增强对中文的支持 2009-12-9
1.0.7 支持添加需要认证的代理 2009-11-16
1.0.6 修正ip_relay模式下程序不能启动的问题
1.0.5 修正了程序在Linux下的一些bug
1.0.3 改进了程序的启动方式,不再出现命令行窗口,源代码主程序修改为PyProxySwitch.pyw,精简了部分代码 2009-10-15
1.0.2 改进了Windows下隐藏Console窗口的实现方法,修正了自带的3proxy配置文件Tor.conf的一个小错误 2009-10-6
1.0.1 代理名称现在支持中文了 2009-9-26
1.0 【里程碑版本】实现批量添加/删除代理的功能(现支持Windows平台)2009-9-25
0.9.9.9 修复了几个bug,改进了程序文件/目录的结构 16:02 2009-9-24
0.9.9.8 新增代理配置程序pps_config,现在支持在命令行下添加/删除代理并定义菜单项 2009-9-23
0.9.9.7 修正了Windows版读取配置文件时的一个问题 18:08 2009-9-22
0.9.9.6 初步实现中文/英文界面切换 2009-9-20
0.9.9.5 修正了用py2exe编译为exe文件时的bug,几处小改进 15:32 2009-9-16
0.9.9.3 重构代码,polipo linux binary added 2009-09-12 10:07:52
0.9.9.1 增加了对polipo的支持
0.9.9 修正了一些bug,提高了在Windows & Linux上的兼容性,在Arch Linux 2009.08, Slackware 13.0
和Windows Xp sp3下测试通过
0.9.8 修正了在 Linux Python < 2.6下的几个bug
0.9.7 使用py文件作为配置文件,可扩展性更强
0.9.6 改进config文件结构,改进读写配置的相关函数
0.9.5 更名为PyProxySwitch,增强扩展性,同时支持3proxy和iprelay(sf.net)
0.9.3 重构,添加平台相关代码
0.9.2 增加读取配置文件的功能,支持添加代理,自动保存设置
0.9.1 改进数据结构,精简优化代码(重构:Refactoring)
0.9.0 解决CreatePopupMenu问题 2009-08-20