Closed GoogleCodeExporter closed 9 years ago
帐号之前不知为啥被封了,现在试了下居然可以了。
好久没维护了,差不多都忘了,果然是很难用,大概是这样��
�,在proxy.conf最下面加入以下内容:
autoproxy = autoproxy[0]
__del__.remove('autoproxy')
def find_http_handler(method, url, headers):
if url.hostname in ('127.0.0.1', 'localhost'): return rawproxy[0]
if type(autoproxy) == dict:
return gaeproxy
if autoproxy('PROXY 127.0.0.1:8086; DIRECT', url):
port = url.port
if 80<=port<=90 or 440<=port<=450 or port>=1024:
return gaeproxy
return rawproxy[0]
Original comment by dtma...@163.com
on 17 Jun 2012 at 4:04
可以接受一些代码的作用吗?
autoproxy = autoproxy[0]
__del__.remove('autoproxy')
def find_http_handler(method, url, headers):
if url.hostname in ('127.0.0.1', 'localhost'): return rawproxy[0] #这个应该是判断无需代理的IP
#如果想表示一段IP,比如192.168.1.1-255该怎么表示呢? 192.168.1.*
可以吗?
if type(autoproxy) == dict:
return gaeproxy
if autoproxy('PROXY 127.0.0.1:8086; DIRECT', url):
port = url.port
if 80<=port<=90 or 440<=port<=450 or port>=1024:
return gaeproxy
return rawproxy[0]
#代码中并没有提到对PAC文件的解析啊,这部分难道是自动的?
Original comment by lon91...@gmail.com
on 18 Jun 2012 at 2:29
#内部有以下代码:
autoproxy = {}
autoproxy['PROXY 127.0.0.1:8086; DIRECT'] =[
['http://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt','http://127.0.0
.1:8086'],
'file://userlist.ini']
autoproxy = autoproxy, 'proxy.pac'; __del__.add('autoproxy')
#autoproxy如果是一个dict,就不生成PAC,而是解析规则,通过if
autoproxy(key, url)的方式判断是否需要代理;
#autoproxy如果后面加了(一个或多个)文件名变成一个tuple,��
�生成PAC保存到文件,无法通过autoproxy判断;
#因为不生成PAC时初始化后autoproxy变量不再需要,所以可__del__
.add('autoproxy')预删除该变量(其实这样很不好);
#所以如果想要不使用PAC而是通过内部判断,就需要把tuple变��
�dict,并不要删除该变量
autoproxy = autoproxy[0]
__del__.remove('autoproxy')
def host2ip(url):
ipv4, ipv6 = url.ip
return ipv4 and ipv4[0] or '', ipv6 and ipv6[0] or ''
def find_http_handler(method, url, headers):
if url.hostname in ('127.0.0.1', 'localhost'): return rawproxy[0] #这个应该是判断无需代理的IP
#如果想表示一段IP,比如192.168.1.1-255该怎么表示呢? 192.168.1.* 可以吗?
#这里的hostname是用于控制允许访问的网站的,如果需要把hostname解析成ip,可以用:ipv4, ipv6 = url.ip
#ipv4, ipv6都是list,如果无法解析的话就是[],有多个的话就形如['1.1.1.1', '2.2.2.2']
#如果只需要一个的话,可以加入上面的host2ip函数:ipv4, ipv6 = host2ip(url),返回形如'1.1.1.1' 或 ''
#至于判断,简单的可以ipv4.startswith('192.168.1.'),复杂的用socket.inet_aton转换成数字再判断,不过并不推荐解析成IP
#如果你需要控制的是哪些客户端ip可以使用代理的话,如果需要允许整个局域网,不需要任何处理,因为公网在没做
#虚拟服务器或DMZ等规则时是无法访问到内网的,如果想允许部分ip,见下面check_client。
#autoproxy插件初始化时有点小冲突,所以要判断下type
if type(autoproxy) == dict:
return gaeproxy
if autoproxy('PROXY 127.0.0.1:8086; DIRECT', url):
port = url.port
if 80<=port<=90 or 440<=port<=450 or port>=1024:
return gaeproxy
return rawproxy[0]
def check_client(ip, reqtype, args):
if ip in ('192.168.1.110', '192.168.1.111'): #拒绝.110 .111使用
return False
return True #允许其他情况
#总之现在再看,我也觉得是很难用的,如果发布新版本的话�
��肯定会大调整,不过暂时还没啥时间。
Original comment by dtma...@163.com
on 18 Jun 2012 at 2:21
多谢指点了! 多谢了!
还需要好好消化消化!
Original comment by lon91...@gmail.com
on 19 Jun 2012 at 7:18
Original issue reported on code.google.com by
lon91...@gmail.com
on 17 Jun 2012 at 2:36