这个是对之前用Python写的一个Sogou本地代理服务器的更新版本,新版本支持了HTTPS连接,实现了CONNECT请求。
我发现,Sogou上的squid服务器,限制了CONNECT命令只能够连接远程主机的443端口,其他的端口都返回403 Forbidden状态。
教育网的用户,可以使用我在学校建立的HTTP代理,scut.tk:1998。支持IPv4和IPv6的访问。
Windows Binary 下载
上代码:
''' Author: Xiaoxia Contact: xiaoxia@xiaoxia.org Website: xiaoxia.org ''' from threading import Thread, Lock from struct import unpack from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer from httplib import HTTPResponse from SocketServer import ThreadingMixIn import socket, os, select import time, sys, random import threading # Minimize Memory Usage threading.stack_size(128*1024) x_sogou_auth = "9CD285F1E7ADB0BD403C22AD1D545F40/30/853edc6d49ba4e27" proxy_host = "h0.edu.bj.ie.sogou.com" proxy_port = 80 BufferSize = 8192 RemoteTimeout = 15 def calc_sogou_hash(t, host): s = (t + host + 'SogouExplorerProxy').encode('ascii') code = len(s) dwords = int(len(s)/4) rest = len(s) % 4 v = unpack(str(dwords) + 'i'+str(rest)+'s', s) for vv in v: if(type(vv)==type('i')): break a = (vv & 0xFFFF) b = (vv >> 16) code += a code = code ^ (((code<<5)^b) << 0xb) # To avoid overflows code &= 0xffffffff code += code >> 0xb if rest == 3: code += ord(s[len(s)-2]) * 256 + ord(s[len(s)-3]) code = code ^ ((code ^ (ord(s[len(s)-1])*4)) << 0x10) code &= 0xffffffff code += code >> 0xb elif rest == 2: code += ord(s[len(s)-1]) * 256 + ord(s[len(s)-2]) code ^= code << 0xb code &= 0xffffffff code += code >> 0x11 elif rest == 1: code += ord(s[len(s)-1]) code ^= code << 0xa code &= 0xffffffff code += code >> 0x1 code ^= code * 8 code &= 0xffffffff code += code >> 5 code ^= code << 4 code = code & 0xffffffff code += code >> 0x11 code ^= code << 0x19 code = code & 0xffffffff code += code >> 6 code = code & 0xffffffff return hex(code)[2:].rstrip('L').zfill(8) class Handler(BaseHTTPRequestHandler): remote = None # Ignore Connection Failure def handle(self): try: BaseHTTPRequestHandler.handle(self) except socket.error: pass def finish(self): try: BaseHTTPRequestHandler.finish(self) except socket.error: pass # CONNECT Data Transfer def transfer(self, a, b): fdset = [a, b] while True: r,w,e = select.select(fdset, [], []) if a in r: data = a.recv(BufferSize) if not data: break b.sendall(data) if b in r: data = b.recv(BufferSize) if not data: break a.sendall(data) def sogouProxy(self): if self.remote is None or self.lastHost != self.headers["Host"]: self.remote = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self.remote.settimeout(RemoteTimeout) self.remote.connect((proxy_host, proxy_port)) self.remote.sendall(self.requestline.encode('ascii') + b"\r\n") # Add Sogou Verification Tags self.headers["X-Sogou-Auth"] = x_sogou_auth t = hex(int(time.time()))[2:].rstrip('L').zfill(8) self.headers["X-Sogou-Tag"] = calc_sogou_hash(t, self.headers['Host']) self.headers["X-Sogou-Timestamp"] = t headerstr = str(self.headers).replace("\r\n", "\n").replace("\n", "\r\n") self.remote.sendall(headerstr.encode('ascii') + b"\r\n") # Send Post data if self.command == 'POST': self.remote.sendall(self.rfile.read(int(self.headers['Content-Length']))) response = HTTPResponse(self.remote, method=self.command) response.begin() # Reply to the browser status = "HTTP/1.1 " + str(response.status) + " " + response.reason self.wfile.write(status.encode('ascii') + b'\r\n') hlist = [] for line in response.msg.headers: # Fixed multiple values of a same name if 'TRANSFER-ENCODING' not in line.upper(): hlist.append(line) self.wfile.write("".join(hlist) + b'\r\n') if self.command == "CONNECT" and response.status == 200: return self.transfer(self.remote, self.connection) else: while True: response_data = response.read(BufferSize) if not response_data: break self.wfile.write(response_data) do_POST = do_GET = do_CONNECT = sogouProxy class ThreadingHTTPServer(ThreadingMixIn, HTTPServer): address_family = socket.AF_INET6 server_address = ("", 1998) server = ThreadingHTTPServer(server_address, Handler) # Random Target Proxy Server proxy_host = 'h' + str(random.randint(0,5)) + '.edu.bj.ie.sogou.com' print('Proxy over %s.\nPlease set your browser\'s proxy to %s.' % (proxy_host, server_address)) try: server.serve_forever() except: os._exit(1)
难得的沙发啊
什么意思? 通过Sogou服务器 代理 fanqiang ?
为教育网用户服务的,如果你在使用教育网,你就可能会考虑使用一下这个代理!
主要是可以在教育网访问国外非墙的网,比如app store
str(random.randint(0,15))
o(∩∩)o…哈哈,之前担心这个数字的上限可能会变化比较大,所以改小了。不清楚10以上的服务器,跟5以下的那些,在网络质量和稳定性方面是否会有差异。
出口一样,入口可能不同吧。
话说最近搜狗的出国线路好差。
这样公开会不会给小虾的服务器带来挺大压力啊= =
哇,还可以这样啊!哈哈,现在这个牛逼的代理已经完全满足我的需要了,vps用来学习测试,我还没用过这么高级的东西~!BTW.我要怎样在评论里像你一样发表情啊O.o
嗯。因为这段时间比较忙,等12月份空闲了,就在校园网搞一个Linux体验中心。
发表情不是冒号加括号吗?
原来是符号表情解析啊- – 呵呵,我2了…:)
Linux体验中心!!给力啊!!我也很想让linux在我们学校推广,有什么用得上我帮忙的尽管叫我哈!!
你可以试试用goagent在sae里面搭建一个代理,相信比这个搜狗会快很多。个人觉得新浪的网络硬件比搜狗的好一点,嘿嘿。
嗯,我有空试试!!!
这个实现了没有。goagent在代理翻墙方面一流。我不会py,不过觉得这样可以实现。在gae上自己架了一个翻墙用。sae还没用过
还没试,等放假有空才试试!你在gae上的速度如何?这些app应该都是有资源限制的吧
你没用过goagent?翻wall的速度比好多国外ssh快多了。原理我没分析明白。架在gae上的是可以用来翻wall的。不过现在gae刚刚瞎改了账号收费策略。免费的每天1个G流量。架一些小程序足够了。其他磁盘大小我没有了解。
是一个月1G流量。翻墙什么的没问题,打开apple store也没问题,但要在itunes里面下载软件是不行的,老是错误提示。用这个搜狗就没问题了
咋都在瞎说,google的一个账户(前几天账户政策变动,现在必须是gmail的账户。其他邮箱注册的google id没有免费的app了。括号里信息看别人说的。)可以有10个appID,每个ID一天1G的流量,10个就10G。每天下午4点多流量重累计。可以用wallproxy和goagent。
你好,请问你的firefox是怎么与kde整合的那么好的(无标题栏;菜单按钮、标签栏、最大\小化、关闭按钮在一栏上)
有个外观叫做Oxygen KDE,只适用于KDE桌面的!!!
直接点那个copy to clipboard 代码会有很多转义字符
自己选中复制呢 每行前面多4个空格……虽然要写代码去掉也很简单……
能不能给个编译好的exe?
用view plain呀!!!
编译好的exe,我已经更新上去了
多谢啦
你这个要怎么用?对PY不是很了解,之前就用过Felix Yan用PY写的一个影片信息提取工具。
对于代码最还是能提供一个可下载的文本,这个直接贴在博客上,用有些麻烦啊。
对于Windows用户,已经提供二进制文件下载使用。
对于贴博客的代码,可以选择View Plain,然后再copy代码。
嗯,下次长长的代码,我还是上传文件吧
挺好用的了 不过还是有个建议 最小化的时候能不能放到托盘里呢 因为代理啥的 毕竟不会经常要打开看
放任务栏上占一个位置不太好
这个是Windows编程呀,唉,帮不上忙了……
我用小虾的代码做了一个C版本的,支持托盘,感谢小虾的python代码
http://yxleimeng.googlecode.com/files/sogou.rar
哥们,能加个功能么?带自定义本地端口和远程代理服务器.你这个也不错呢,谢啦!
http://hi.baidu.com/yxleimeng/blog/item/364a53fb7ef96579034f5613.html
正在使用中,很好用~
同求做一个可以更改搜狗服务器地址的版本
已更新,请查看!http://hi.baidu.com/yxleimeng/blog/item/364a53fb7ef96579034f5613.html
已更新,支持自定义端口和远程代理服务器地址
http://hi.baidu.com/yxleimeng/blog/item/364a53fb7ef96579034f5613.html
在linux平台可用么?
估计没有,因为他是用windows的。。。
话说,你可以用python写个小小的gtk界面也不错。
另外 这句话 print(‘Proxy over %s.\nPlease set your browser\’s proxy to %s.’ % (proxy_host, server_address))
server_address没有这个变量嘛 直接就是空的 应该是127.0.0.1吧
有这个变量的呀,
server_address = (“”, 1998)
默认绑定本地所有网卡的1998端口了。
唔 server_address = (“”, 1998)
前面为啥是空的? 这个写 127.0.0.1:1998不好吗
也可以,这样是只能本机使用,不能给远程的朋友使用,会安全一些。
just-ping了,Packets lost (100%) ipv4 &ipv6
I’m sorry, the server tonight is down because of a partition problem!!!
The hard disk is to be fixed this night. So sorry~~
“教育网的用户,可以使用我在学校建立的HTTP代理,scut.tk:1998。支持IPv4和IPv6的访问。”
能否讲解一下在浏览器怎么设置代理服务器才能访问IPV6?端口是1998,那代理地址填什么?谢谢!
这句话是说,拥有IPv4或者IPv6的使用者都可以访问scut.tk。
你在浏览器里设置http代理,地址填scut.tk,端口填1998就行了!
能否讲一下代理地址填“”和填“127.0.0.1”的区别么?用的其实是同一个代理对不?
不一样的!
“”是会绑定主机上的所有网卡的端口,除了你自己能够访问,跟你同一个网络的其他电脑,也可以输入你的IP地址或者主机名,使用你的代理。
而127.0.0.1只能绑定你的系统的端口,只有你的主机上才可以使用。
tk代理服务端又用sogou代理?所以不能使用scut的数据库(访问内网)?同样ipv6亦是。
对!!!用了那个代理之后,你就不能访问scut的ipv4内网了,因为使用的要么是搜狗的网络了,要么就是ipv6了。
你好,我是教育网的某个用户。首先你的代理很好用,谢谢。然后有个小问题,就是用代理似乎没有办法下载软件什么的,迅雷和BT都没有速度(大部分情况是这样,极少数可以用迅雷、BT或者IDM下载)。不知道这仅仅是我这的原因还是?
你好,用代理是方便浏览网页的,不适用于下载软件。再说,你的下载软件也可能会搞垮搜狗的服务器。。。
怎么用啊 我的为什么上不去qq呢
设置程序代理地址为127.0.0.1:1998即可。
你设置QQ的HTTP代理也无法登录?
连接服务器超时……神马情况啊…….
看网页啥的用的都很正常…..就是qq不给力啊……
晚上12:24登上去了…..是不是人多就容易登不上去啊 有没有没有什么解决的办法啊?
不大清楚是什么原因,不过应该是网络问题吧。有可能是搜狗的网络。
昨天用小虾的Python脚本制作了一个”一键代理“,
有机会你可以测试一下:
http://www.lijiejie.cn/soft/NPUcat-SetUp.exe
很好用,感谢提供源代码~
这下在教育网里面可以将就使用迅雷离线了……
第一次看到你的博客,开始时觉得很有意思,很仔细地看了十几篇文章之后,实在是太佩服你了,以后我一定会关注你写的每一篇文章。
感谢,很强大,很想知道计算hash的方法是怎么得到的。
找到了,研究研究。http://xiaoxia.org/2011/03/10/depressed-research-about-sogou-proxy-server-authentication-protocol/
逆向工程,用OD反汇编跟踪。
你好,我用的是Win7SP1,Python2.7.2,运行代码,访问127.0.0.1:1998没反应。
但是用py2exe编译的sogou.exe确却能打开,不知为什么,Ubuntu下还未测试。
刚在Ubuntu下测试了下,是能正常使用的,Win7下不知什么问题。
感谢楼主,确实是超级好的代理
运行py文件后,发现对应的本地端口没有打开。
但是为什么exe文件没问题呢?
不知道小虾大大有没有在windows7下测试过。
运行py脚本有提示错误信息吗?你试试运行后用netstat看一下。
没有错误信息,端口也没开。。。
win 7下可以使用
不好意思,没有看清楚楼主的问题,我是exe好用,没有运行py文件,不会用,呵呵
现在正在用教育网的IPv6和博主给的scut.tk的代理访问你的博客,非常感谢啦!
貌似QQ不能用这个代理服务器?或者它不支持IPv6来连接到代理服务器吗?
据我所知,QQ应该没有ipv6的服务器。国内有ipv6地址的服务器,大部分都是教育网的,全走香港路线。
我同学是Vista,它用exe访问 127.0.0.1:1998 和 localhost:1998 都能正常打开“The requested URL could not be retrieved”页面。
但是也是Python2.7.2,运行py(当然关了exe),只能访问localhost:1998,127.0.0.1:1998无法连接。查看了他的hosts文件,正常。
运行py脚本时,浏览器代理也必须设成localhost:1998才能访问网站。QQ同理。
而exe的话,localhost:1998和127.0.0.1:1998都行。
你ping一下localhost,应该不是127.0.0.1了。
ping下来是::1,但也不会不能访问127.0.0.1:1998啊。奇怪。
::1是IPv6的。跟127.0.0.1不一样。
你说的之所以exe版本可以使用是因为我编译的exe版本不支持ipv6,代码不同之处在于
address_family = socket.AF_INET4
而你使用的是我文章上贴出来的代码,这个代码是
address_family = socket.AF_INET6
也就是说,你的localhost指向的是IPv6的::1地址,会绑定IPv6的地址。
我发现问题所在了,是hosts文件的问题。
我原来的hosts文件中有一行去广告的将一个域名指向了127.0.0.1,造成127.0.0.1:1998和localhost:1998都不能访问了。
我讲这一行去掉以后就跟我同学同样的状况了,但是我想不通为什么还是不能用127.0.0.1:1998访问。
还有一个问题,Win7下,如果设置server_address = (“127.0.0.1″, 1998)的话会出错:
Traceback (most recent call last):
File “D:\sogou.py”, line 137, in
server = ThreadingHTTPServer(server_address, Handler)
File “C:\Python27\lib\SocketServer.py”, line 408, in __init__
self.server_bind()
File “C:\Python27\lib\BaseHTTPServer.py”, line 108, in server_bind
SocketServer.TCPServer.server_bind(self)
File “C:\Python27\lib\SocketServer.py”, line 419, in server_bind
self.socket.bind(self.server_address)
File “C:\Python27\lib\socket.py”, line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 10049]
设置成server_address = (“localhost”, 1998)的话没问题。
把address_family = socket.AF_INET6改为address_family = socket.AF_INET4
首先感谢你提供,此外,用你提供的exe,一直提示
localhost.localdomain–[06/Dec/2011 16:26:10] Request timed out:timeout
请问怎么解决,此外,你在代码里面用到的是h0.edu.bj.ie.sogou.com这个服务器,怎么找到和自己连得最快的服务器呢?
你好,首先感谢你提供的代码,但是我这有些问题:
我是用你编译好的exe文件,但是一直提示localhost.localdomain – – [06/Dec/2011 16:32:08] Request timed out: timeout,请问怎么解决
此外,你在代码中使用的服务器是h0.edu.bj.ie.sogou.com,我想请问下如何找到和自己连接最快的服务器,
先谢过了
出现timed out是因为连接超时,默认超时的时间为15秒,你可以修改,不过你需要安装python。
默认会选择h0.edu.bj.ie.sogou.com到h4.edu.bj.ie.sogou.com这5个服务器进行连接。
如果你需要其他网络,例如h0.ctc.bj.ie.sogou.com或者h1.cnc.bj.ie.sogou.com等,你需要自己修改代码
最近发现你的博客很给力 这个软件也很好用 收了 3Q
话说你提供的那个scut.tk:1998 的代理是国内的服务器还是国外的啊
是教育网的啊,目前提供这个服务的PC,就放在我宿舍。非教育网用户应该访问不了。
我发现可以上twitter还以为是国外的服务器的说……
嗯,这台机器配置了IPv6地址的。
对于我们学校这种需要拨bras才可以访问外网的网络情况很实用……
需要设置ppp宽带拨号还是需要在本地系统安装软件来拨号上网?
需要设置L2TP拨号才可以上网……
大一那会上网是直接就可以上外网的,后来改革了 然后就必须拨个VPN才可以访问外网
还以为是放在活动室的服务器哦 ……
正有此打算!但是活动室离我宿舍太远~~~平时没有人看管!
C14某活动上去年丢过,要注意物品安全。
那PC是服务器?
嗯。看日期是04年出的,目前安装内存512M,cpu3GHz赛扬,正常工作时候挺安静的。硬盘少了点,160G,现在用的差不多了。主要是挂了Ubuntu10.10,11.04,11.10三个镜像源。
thanks,刚发现sougou的代理源码,非常赞~
你好,请问 WIN7 64位可以用么?
是直接运行sogou.exe?(双击后命令行闪现一下就没了。。
很可能是你的1998端口被占用了。你可以用
netstat或者资源管理器来找找哪个程序占用了,例如迅雷之类的。
貌似没有被占用的说。。但是依旧双击闪一下就没反应了。。防火墙已关闭
(话说开着搜狗浏览器也可以运行这个的吧?只要端口没被占用
你先打开一个控制台,然后切换到文件目录,输入文件名来执行。看退出的时候输出什么信息。
希望这个代理可以永世长存,你们学校怎么计费的?按流量么?明年开始清华每人每月就给20G,估计都不够用了…
好像我们学校没有听说有流量限制的。
因为我本身也没有开通网络,目前我用的是同学的网络端口通过无线路由共享出来的。
只要我还在这个学校,这个代理基本上都可以一直用,^_^
同希望,这个代理太牛了你们学校的网络研究中心,无愧国家重点学科的称号啊。以后就在学校当教授吧,呵呵
好像挂了,ipv6可以ping通,但是ipv4的出口好像挂了。
太好用了,所以很难长寿啊
ipv4的地址今天被某人占用了。
不知道谁在本地乱改的IP,查了一下,是一台windows机器,还装了防火墙软件。
刚才改了一下IPv4的地址,估计等10分钟左右就生效了。
我也是教育网的。。试用了一下速度还可以。话说搜狗的服务器有ipv6地址吗?学校限速ipv4但不限速ipv6
本文被某敏感网站转载了,还注明了出处。
另,转载后被大量滥用,这几晚的质量明显下滑。
是哪个网站?这个代理本身又不能访问敏感资源,只是方便教育网访问公网而已。不过一个服务器,用的人多了,肯定质量就会下降了。
呵呵,你没看清楚我的叙述。
utube,twit,fb,gtalk这些算敏感资源不?
看情况。
但某tk站和某org站就再敏感不过了。
晚上基本上tk的那个就不能用了。
嗯,本地使用流量大,我有空把主机换到别的端口去。并且做一下带宽控制。
这里看youtube有几兆/秒。
作为代理服务器,有个独立的出口就更爽了,呵呵。已经很给力了,谢谢。
代理服务器有个独立的出口,就更给力了。
现在代理是不能用了么
刚刚设置了代理为scut.tk:1998,可是什么网都上不去,但是可以ping通scut.tk
能ping说明代理服务器网络正常。
你试试能不能上youtube。如果可以上youtube,则可能是搜狗的代理服务器出了问题,否则就是代理服务器挂了。
还有就是我用sogou.exe的话会一直提示a.baidu.com – – [10/Dec/2011 13:56:27] Request timed out: timeout(‘timed out’,)
而我根本就没开百度类的网页。。
可能是插件,不知道你用啥浏览器,不清楚~~~
查看你的hosts文件
估计你的浏览器或者系统安装了百度的某些插件或者工具。我这里也发现有类似的情况,只是我这里中了属于后门之类的木马,杀毒软件杀不到,从小虾的sogou.exe里面发现一直在访问某网站的。
v4、ipv6都访问不能了?
前天下午我被断了网,原因未知。目前服务器已转移到别处,已经接入网络。
搜狗有动作了?很多网站打开有问题了?
貌似搜狗有行动了,一些网站打不开了,有解不?
更改服务器地址,使用h5~h15之间的服务器应该比较稳定。
不能打开google 的所有网站,求解决办法
# Random Target Proxy Server
proxy_host = ‘h’ + str(random.randint(0,5)) + ‘.edu.bj.ie.sogou.com’
改为
# Random Target Proxy Server
proxy_host = ‘h’ + str(random.randint(5,15)) + ‘.edu.bj.ie.sogou.com’
非常感谢博主,这个软件非常好用。
我非常想知道,我自己怎么搭建一个像你scut.tk一样的代理服务器?直接在scut.tk上面运行你的程序吗?
在你的服务器上运行代理程序就行了
谢谢博主:)
AF_INET6对应ipv6,AF_INET对应ipv4,不知小虾的服务器上运行两个不同的sogou.py程序还是?另 之前的问题,是否意味着 “自定义规则 代理实现校内用户访问学校数据库及fb等,可编译到sogou或其他代理”,有其他可参考的实例吗?谢谢!!!
这个可以在代理的代码里,添加一套规则进行判断。你可以准备一张ipv6的hosts,如果能够找到ipv6地址,就首选ipv6吧
小虾你好,我又有问题了。你给大家提供的scut.tk:1998竟然可以访问“脸谱”和“推”,按理说Sogou的代理是不行的,我看上面你说是有IPv6,我想知道怎么配置我们实验室的服务器才能达到像你这个scut.tk一样的效果?我们实验室的服务器已经接通IPv6,我们局域网内的都没有IPv6。可以大概给我讲讲吗?谢谢!
因为我有一张ipv6的hosts表,你访问一些网站例如google的网站,会优先使用ipv6来访问,而不是用搜狗代理的。
当然,我是扩展了这篇文章里的这个python程序。
哦,原来是这样,谢谢楼主指点。
看样子,scut.tk监听::及0.0.0.0,优先使用ipv6访问ytb,twit等,有点负载均衡的味道。scut服务器使用的ip是公网|教育网125.216.248.10,还是nat了?校园网的公网出ip不是很少吗?若是具有Internet访问权限的校园内网的代理,如何给外网代理?没有在学校路由器开映射的权限,内网开代理或vpn不知如何作?
这个主机的机器比较古董,现装内存512M,在CentOS的基础上安装了OpenVZ,随后再运行了10个Ubuntu系统。主机通过路由器直接桥接到外部网络,有教育网的IPv4和IPv6地址,除80、21、3306等端口被封,其他端口均对外部开放。
OpenVZ绑定了一个IPv4地址,125.216.248.10,有dhcpd服务,做路由功能以及端口转发功能。Ubuntu系统的内部IPv4地址为10.0.8.*,作为HTTP,Proxy,FTP,实验等不同的服务各自独立一个系统运行,但是拥有公网的IPv6地址(IPv6没有NAT)。
Anything else?
谢谢xiaoxia的解答!scut.tk上的sogou proxy 到底plus or modify 什么,来使用ipv6 hosts.域名过滤用到没?
路由器桥接没用wlan接口,centos路由用到 ipv6 dhcp 中继 还是什么 使10个ubuntu有各自ipv6地址——[2001:250:3000:3cc5::252]为cento os address OR ubuntu address?
公网地址125.216.248.10容易申请 亦或,,,
ps:
将’AF_INET6改为’AF_INET4, py2exe 后 出现line 128, in ThreadingHTTPServer AttributeError: ‘module’ object has no attribute ‘AF_INET4′;
python25 py2exe不能编译 error。linux python2.5环境下log
line 100
self.remote.sendall(self.requestline.encode(‘ascii’) + b”\r\n”);
期待Linux体验中心。
非常感谢站主的贡献
呐,太强了。非常感谢。
你这个软件很好很实用。本人对网络编程的东西不怎么了解,提个问题,为什么用这个代理不能够看视频直播(PPTV,PPS)呢?是因为相关的网络协议(tcp,udp)没加进来吗?现在只要是看直播就会提示网络故障。
Sogou代理只支持普通的80端口的网页请求以及HTTPS请求。所以不要指望UDP以及某些协议的流媒体。也不要对代理用p2p软件抱太大希望,即使可以用也随时被封锁。
这个代理软件很强大,但为什么不能用来看pptv和pps呢?
偶尔来吐个槽。本来想着发个sogouproxy修改版privoxy也不错,但是看见大家在虎视眈眈地准备用来P2P,想想还是算了。
这个会用privoxy的家伙都会自己整吧。那些想用来p2p的家伙就看他们自己造化了
换作address_family = socket.AF_INET4后,编译错误。
可否email扩展版sogou proxy,以资研究。谢谢!位于宿舍的主机接入具公网ip的 campus network,sogou代理运行centos or ubuntu,ubuntu 内似无unicast ipv6 address?如何修改同时监听v4 v6?谢谢!
须指定AF_INET6协议,监听IP不指定即可监听所有IP。目前不在学校,无法email你。
还是老问题,address_family = socket.AF_INET4后编译运行,
Traceback (most recent call last):
File “cnc.py”, line 127, in
File “cnc.py”, line 128, in ThreadingHTTPServer
AttributeError: ‘module’ object has no attribute ‘AF_INET4′
而AF_INET6 编译运行,netstat -ano | find “1998”只发现监听::,而没有监听0.0.0.0、不知xiaoxia提供的exe版本编译时做了哪些更改?而改为address_family = socket.AF_INET(非socket.AF_INET4)监听0.0.0.0,谢谢!
我这里好像对公网限速了100kb,对用sogou代理后也是如此,如果是教育网的ip就很快,请问sogou有没有那个服务器的ip是在教育网的啊,多谢了
那就用我的代理,或者试试IPv6有没有限速。
我的ipv6代理是:
[2001:250:3000:3cc5::252]:1998
说老实话,有时候还是会用这个下载的,最希望可以直接用sogou的服务器,如果用你的,心里不好受啊,呵呵
没问题呀,这个也不是我的网络。我在一楼,这个服务器在六楼的活动室,平时也没人管,你就用吧。
就是怕放假后,那里不知道会不会停电,o(∩∩)o…哈哈
多谢了,O(∩_∩)O哈哈~
你的代理速度很快,赞一个
Pingback引用通告: “西工大的猫”一键代理VB6源代码 | 李劼杰的博客
ha,我也是南边某理工的:-)
问一下唉,这个代理能通过本地的win7的wifi分享给iPad使用不?
可以。
绑定了你的wifi网络的IP地址即可!
绑定为固定IP?
这个IP是哪里的呢?
不用对呀。程序默认就绑定了所有的IP了吧!!!
你在本机测试,能够用wifi网络的ip访问就可以了。
也就是在IE里的LAN设置改了端口wifi就可以直接用?之前在这个地方问了一下对方说127.0.0.1的代理不好共享给wifi:
通过win7自带无线分享网络给iPad使用后,如何将浏览器的代理也分享给iPad呢?http://www.v2ex.com/t/24448
涉及到的网络知识太多了。可以了解一下如何搭建互联网服务器方面的知识。
在你的wifi网里,你本机会有一个在这个网络里的IP地址。例如192.168.1.2,在你的ipad(IP为192.168.1.3)上,设置http代理为 192.168.1.2:1998 即可!
希望对你有帮助
为什么我不能用 轻舟等各种都不可以了
轻舟。。。
各种不能用了,已经(scut.tk:1998),麻烦……
据说本学期还没交网费,断网了。
Pingback引用通告: Linux下利用搜狗代理上网 | ouxijv's Blog
我的设置(scut.tk:1998)怎么不能上fb,ytb?
你好,目前scut.tk服务器已经停止。因为没有交网费。。。
在ubuntu下的锐捷没有办法连接免费资源,也就没办法使用sogou代理。能不能通过ipv6连接sogou代理服务器?如果可以的话,该怎样修改代码?
sogou只有ipv4的服务器吧! 现在国内没有商业网站使用ipv6的。
能否通过nat技术来实现通过ipv6以及搜狗代理访问非教育网资源?
这个是关于nat技术的一个帖子http://www.ipv6bbs.cn/thread-152-1-1.html
既然要用到代理,就不是nat那么简单的事情了。
代理需要应用程序支持代理协议,而nat对应用程序来说是透明的。
如果你必须要用上搜狗代理,那就写一个代理程序根据不同规则来选择搜狗代理和ipv6吧!
其实也不是必须用,由于我们学校使用锐捷认证,而锐捷也没有一个较好的linux客户端,所以我在ubuntu下只能通过ipv6上网(我承认不想交网费,不过我一个月总共也花不了多少流量却必须要买6G的流量套餐,我表示不服)。由于使用ipv6是通过nat技术来访问ipv4的,再加上支持nat的dns服务器在国外,访问国内网络速度比较蛋疼。所以我想通过搜狗代理来加速。
事实上,设置了支持nat的dns以后,在ipv6下,我可以ping到搜狗的几个代理服务器,但通过代理上网时,始终显示连接被重置,不知这是为什么?是由于nat技术不支持代理协议吗?
我觉得nat和http代理是不同层面的东西,互不相干吧!
你要测试能不能使用http代理之前,应该需要先测试能否与搜狗的代理服务器建立TCP连接。
你也不交网费上网的呀,我一直以来也是的
嘿嘿,本来刚上大学的时候还是交的,直到开学两个月后发现了你的这个神器,几个月前又发现了nat这个神器,两大神器在手,我为毛还要交网费?嘿嘿···
我想问一下,如何测试能否与搜狗的代理服务器建立TCP连接?用什么命令?或者需要什么程序?(ubuntu下的)
telnet就可以吧, telnet host port
ping搜狗的代理服务器时显示network unreachable。
ping6搜狗的代理服务器时可以正常得到回应。
telnet搜狗的代理服务器时,终端显示系统先测试ipv6host,失败;又测试ipv4host,再次失败,最终显示network unreachable。端口我试了好几个,对结果无影响。
这是肿么回事?求解释。
你好,你telnet的是1998端口吗?
telnet scut.tk 1998
or
telnet -6 scut.tk 1998
telnet scut.tk 1998可以连接到。
运行sogou代理器以后,telnet 127.0.0.1 1998也可以连接到。
但是直接连接sogou的代理服务器时,连接不到。
你提供的那个scut.tk的代理一直可以用。
请问WIN64能用么
可以的吧,我笔记本的win7上可以的!你试试吧
绝对可以,我的win7和ubuntu11都是64位的,全都可以正常运行。
行 5: $’\n Author: Xiaoxia\n Contact: xiaoxia@xiaoxia.org\n Website: xiaoxia.org\n': 未找到命令
from: can’t read /var/mail/threading
from: can’t read /var/mail/struct
from: can’t read /var/mail/BaseHTTPServer
from: can’t read /var/mail/httplib
from: can’t read /var/mail/SocketServer
import: unable to grab mouse `': 资源暂时不可用 @ error/xwindow.c/XSelectWindow/9007.
import: unable to grab mouse `': 资源暂时不可用 @ error/xwindow.c/XSelectWindow/9007.
/home/daiaji/文档/app/sougou.py: 行 17: 未预期的符号 `128*1024′ 附近有语法错误
/home/daiaji/文档/app/sougou.py: 行 17: `threading.stack_size(128*1024)’
嗯?
作业系统ubuntu11.10……
Python版本问题?
你使用的是那个版本呢?还有,你是如何执行的呢?你是否正确的复制了代码?
没回复的原因是我现在必须挂代理才能上你这
url不建议使用tag+时间 因为很容易触发关键词拦截
用编号吧
我得去ubuntu那看看
原因似乎是找到了- –
没有指定用啥运行….
在路径前面没加“python”
话说在脚本后面加.py尾缀就ok了吧 怎么无效- –
你的是什么系统呢。。。
如果是Linux,你需要习惯Linux的用法。
linux无误
So sorry about that!!!
大部分网络访问还是没有问题的吧!!!
以后有时间,我得想个办法,让我的网站不在gfw的关键字监控之下……
很简单以后给在文章里加TAG
url就用编号吧 第一篇用0000001之类的
http://xiaoxia.org/2011/11/14/update-sogou-proxy-program-with-https-support/#comment-22978
这个可能有的敏感词是proxy https…
具体就不知道了
你的啥网络呀,连proxy、https都封。。。
我也不知道是不是抽风….
不过可以确认的是
第一个是关键词的可能性大
顺带一提用sogou的访问可以访问你的博客 那么可能只是我的ISP那啥了吧
万恶的电信?
scut.tk求恢复啊……
已恢复!
多谢,多谢!
既然可以实现google ipv6等的等hosts 来使代理访问scut.tk:1998时不通过 soHu的sogou代理,能否同样过滤掉某些ip,例如cnki,万方等数据库ip。是否纯IP不能过滤,而只有有域名的可以呢?谢谢!
你说的方案,可以做到的!在代码里可以实现。自定义规则就可以啦
停掉了么?
G10 设置wifi http代理无效呀
已恢复
华工的朋友可以使用
为何如此强调华工的朋友,我表示很好奇啊,呵呵
希望早日恢复scut.tk啊。。。
今晚已经恢复了。
有热心的朋友帮忙交网费了
太感谢了,我又可以fb了。。。顶顶顶
强烈建议加上维基百科的出国代理。
维基百科有ipv6的服务器么?
如果有的话,给我ipv6,我可以添加到列表去~
我想用Proxfier和搜狗代理来上网,不过使用proxifier时,总是显示HTTP/1.1 403 Forbidden。可是这个版本的搜狗代理不是已经修正了这个问题了吗?为什么还会这样?
proxifier是一个切换代理的工具么?如果不使用proxifier,会不会出现这样的问题?
Proxifier是用来帮助不支持代理协议的程序使用代理的软件(典型的例子是网游:P)。搜狗代理用于浏览网页时,完全可以正常浏览https类型的网页。可是用于Proxifier时,如果测试的是443端口,会显示连接成功,测试其他端口(如80)却会显示:
[54:06] 测试已开始。
代理服务器
地址: 127.0.0.1:1998
协议: HTTPS
验证: 否
[54:06] 正在开始: 测试 1: 连接到代理服务器
[54:06] IP 地址: 127.0.0.1
[54:06] 已建立连接
[54:06] 测试已通过。
[54:06] 正在开始: 测试 2: 通过代理服务器连接
错误: 代理服务器 (Squid) 没有配置为允许 SSL 隧道至端口 80。
要解决此问题,请查找和评论 Squid 配置文件(squid.conf)
中的以下行:
http_access deny CONNECT !SSL_ports
代理服务器响应头为:
HTTP/1.1 403 Forbidden
Server: squid/2.6.STABLE23
Date: Sat, 24 Mar 2012 05:54:06 GMT
Content-Type: text/html
Content-Length: 1059
Expires: Sat, 24 Mar 2012 05:54:06 GMT
X-Squid-ExtError: ERR_ACCESS_DENIED 0
X-Cache: MISS from tc_194_6.sogou-in.domain
Via: 1.0 tc_194_6.sogou-in.domain:80 (squid/2.6.STABLE23)
Proxy-Connection: close
[54:06] 测试已失败。
是不是通过搜狗代理的https只能连接443,而无法连接其他端口?
没办法了,因为sogou的squid代理只允许SSL使用443一个端口,其他端口我曾经试过,都不行。
proxifier支持代理链,你说能不能用搜狗的代理服务器连接一个无限制的https,再通过这个无限制的https代理来连接公用网络?
可以的!我以前也有这种想法,支持你
这个想法最大的难处在于找到一个端口是443的https代理服务器。我找了两三天了,依然在寻找之中。
网游通常有多个软件构成,它们并不总是使用443端口,有很多使用的是80端口。
proxifier里可以设置为程序使用80端口时用http代理连接,使用443端口时用https代理连接。
可问题在于,网游会使用一些其他的协议,这样就没办法代理了。
请问你的域名是怎么绑定的?你们宿舍还有固定IP啊~
固定IP的!教育网的,开通国际流量需要另外加钱。
昨天我用你的scut。tk的代理都好好的,今天就不行了。
服务器网络维修中,正在增加一个路由器来解决网络问题。
我也是华工的,看到这个,真的兴奋了一下,。。这学期北校的网真是伤透了我的心!
北校的同学怎么了???
话说现在华工南校也晚上12点断网。所以现在不大想用校园网。
一言难尽阿,网速慢,还掉线。还不给拉外网,移动电信什么的都没信号。华工不再是以前的华工了!
真心感谢校友啊,我也是北校的,现在12点断网,而且网速渣的一逼
学校有线网络好像被雷劈坏了…只有无线能用。无线网收费不过开放ipv6..
挂vpn看视频太卡,好不容易才找到博主建的v6代理,速度够快啊!
特地感谢下,估计我得常驻了
你们那儿12点断外网?又没得视频看了
嗯,整个本科生的宿舍楼的断网了,还是物理断的,某SB每晚都去拔网线
难怪。好在这边的网络恢复了
scut.tk1998代理速度为0,什么情况啊
请使用 scut.xiaoxia.org ,scut.tk域名已经被封。
还是不行哦。。。。。。
上网没问题,就是不能登q
Pingback引用通告: C#代理服务器 « Let it be!
你好,我用你的sogou.exe(windows下)和py脚本(Ubuntu下)在本机做代理,请问为什么访问百度空间等网站经常会上不去呢?
试过用了你的scut.xiaoxia.org:1998也同样会经常上不了百度空间
不知道哦!!!百度的服务器很多地方都上不了吧。。。
像我这里用移动网络,经常打不开百度主页的,用google或者bing比较多。
之前迅雷离线通过搜狗代理一般在8MB/s左右,用了一年了一直都很稳定。从前几天开始速度只有500K了,是搜狗开始限速了吗?
看起来不像是学校这边的限制,有人遇到这种情况吗?
对https over proxy的原理不是很了解,而且对代码中间某部分看得不是很明白…
想询问下,这个新版本相对于旧的python脚本新增了https支持,这个关键在哪个地方?
看到新增了connect method的处理,是这个原因吗?
我最近在照你的程序写一个chrome的插件
浏览器直接使用的是sogou的代理地址,发出请求的时候自动加上x-sogou的headers
我想chrome应该都是标准的代理命令和流程,我们只需要添加上headers理应就没有问题了
现在访问http的网站没有问题了,可是https均连不上
不知道还有别的联系方式吗,我找了一圈没找到,只好在这里留言了
Hi, 对于https,你需要在发送CONNECT命令的时候,附上x sogou tags
感谢回复
已经大致找到原因了,chrome的api貌似不能捕获到connect请求
本来已经设置对所有符合要求的url的req添加sogou tag,监听网络发现connect的headers没有被改,get post都没问题
后来做了些简单的测试,确定是chrome的问题,已经提交了bug report
Wow~ 一般遇到这种问题,如果google不到结果,我可能会去找源代码来看了。
话说,https 的流量内容,你是怎么抓包看的?
https是建立在SSL基础上的HTTP,没什么特别的,懂HTTP就行~
我是想知道如何监控内容,wireshark 全乱码啊。
好像Wireshark监控HTTPS的能力比较弱吧,能够监控HTTPS基本上都是中间人攻击了。这个会被浏览器察觉到的。
不知道阁下的插件进度如何,有发布的计划么?
Pingback引用通告: 搜狗代理 | —–F–
Pingback引用通告: 搜狗浏览器代理客户端 « 细节的力量
Pingback引用通告: 翻墙 | 搜狗浏览器代理客户端 - 中国数字时代
Mac 下 执行出错
python sogou.py
File “sogou.py”, line 7
from threading import Thread, Lock
^
IndentationError: unexpected indent
复制的代码出现了问题???
是不是复制多了某些特殊符号呢?
我重新复制了一下好了
Proxy over h0.edu.bj.ie.sogou.com.
Please set your browser’s proxy to (”, 1998).
请问这样是不是设置为 127.0.0.1 就可以了 ?
谢谢。
嗯,对的。提示这个信息表示代理服务器已经运行。
Pingback引用通告: Definite Digest » 搜狗浏览器代理客户端
HTTPS 不工作啊,返回 503
X-Squid-ExtError: ERR_CONNECT_FAIL 110
咦,难道你连接的搜狗服务器,不允许么。。。
怎么fb和yotube又掉了?
这两个是使用ipv6做代理的,华工的ipv6偶尔会挂掉,所以属于正常现象!如果你想上fb和ytb,可以看看 You Proxy!
h0.ctc.bj.ie.sogou.com
h1.ctc.bj.ie.sogou.com
h2.ctc.bj.ie.sogou.com
h3.ctc.bj.ie.sogou.com
啥的完全无法用啊
h0.edu.bj.ie.sogou.com
h1.edu.bj.ie.sogou.com
h2.edu.bj.ie.sogou.com
h3.edu.bj.ie.sogou.com
h4.edu.bj.ie.sogou.com
h5.edu.bj.ie.sogou.com
h6.edu.bj.ie.sogou.com
h7.edu.bj.ie.sogou.com
h8.edu.bj.ie.sogou.com
h9.edu.bj.ie.sogou.com
h10.edu.bj.ie.sogou.com
h11.edu.bj.ie.sogou.com
h12.edu.bj.ie.sogou.com
h13.edu.bj.ie.sogou.com
h14.edu.bj.ie.sogou.com
h15.edu.bj.ie.sogou.com
倒是能用….
很在意那个把这个算法放到Privoxy里的项目啊
在operachina有原帖你可以去搜下,在kafan也有转帖,同时,希望共享研究成果
scut.xiaoxia.org 能解析出[2001:250:3000:3cc5::252] 但是ping不通啊,无法访问目标主机
活动室断网,问了阿里巴巴联盟的同学,估计在最近会修复。谢谢!!!
评论好多…
scut.tk:1998。支持IPv4和IPv6的访问。
这个scut.tk解析不出ipv6地址…
>nslookup scut.tk 8.8.8.8
服务器: google-public-dns-a.google.com
Address: 8.8.8.8
非权威应答:
名称: scut.tk
Addresses: 209.213.105.179
72.51.46.41
小虾啊,貌似用不了了啊~用你编译的exe就提示request time out,用那位童鞋C语言写的就提示connect failed,看来是搜狗改了什么,可能源代码要做一些修改了呢!
小虾,请问这是怎么回事,运行不了,我不懂编程啊
C:\sougou>python sougou.py
Traceback (most recent call last):
File “sougou.py”, line 137, in
server = ThreadingHTTPServer(server_address, Handler)
File “c:\python26\lib\SocketServer.py”, line 398, in __init__
self.socket_type)
File “c:\python26\lib\socket.py”, line 182, in __init__
_sock = _realsocket(family, type, proto)
socket.error: [Errno 10047]
C:\sougou>pause
请按任意键继续. . .
哎呀,你应该查一下10047是什么错误嘛!!!
可能是里面使用了IPv6地址,而你的电脑没有IPv6的协议?
似乎改成address_family = socket.AF_INET就可以了,明明接入ipv6了的
略神奇
这个是http代理,添加代理的时候要注意不要设置成了socks代理
我想请问一下博主,你是如何将Python打包成exe的?
你可以试试pyinstaller
发现华工校友好多啊,到哪里都可以看到。。
实现了一个 C++ 版,
http://blog.csdn.net/coolypf/article/details/8246291
Pingback引用通告: 基于 POCO 框架的 C++ 版搜狗代理程序 | 编程
LZ,我想问一下你这个是怎么破解的,我用wireshare抓包,都没有看出什么破绽,只看到了代理服务器的ip
用OD动态反编译的,你可以搜索我上一篇关于sogou代理的文章。
请问这个有可能改成像 GoAgent 那样可以继承上级代理的吗?
可以的。不知你是如何继承的
博主,我在安卓手机上下载了Qpythen,想通过这个软件对您的python脚本进行编译运行。。。结果失败了。。。将您的脚本做成apk文件在安卓手机上运行。。。也失败了。哎,好想用手机版的啊
作者可以为Wallproxy编写一个sogou插件么?我可以提供权限偶,谢谢
果然是好工具,可是我发现用这个软件,看不了一些tudou的视屏,例如下面这个链接。直接可以打开,用代理的就不行。
http://www.tudou.com/programs/view/YPFjJdYa0Nw/。不知道是什么原因。给你反馈一下
Pingback引用通告: 突破计算所封杀迅雷的方法 | 朝鲁的Blog
h0.ctc.bj.ie.sogou.com
h1.ctc.bj.ie.sogou.com
等无法用,请问电信和联通的代理地址。
不知道会不会和hosts中的127.0.0.1冲突,比如我将adobe的网站加入了hosts,全部指向127.0.0.1,这样使用这个代理会不会有问题?
博主,首先表达一下对你的崇拜与感激之情.其次想问问,可以用这个代理玩游戏么,可以在安卓手机上用么
本人对Python不是很懂,但对你的程序很感兴趣,能不能把如果通过SOGOU代理验证的一段代码略微注释1下发来不胜感激。
大神,我想应用你的代码给openwrt的路由器上添加一个代理服务器,可是在实践过程中出现/etc/sougou$ python /etc/sougou/sogou.py
Traceback (most recent call last):
File “/etc/sougou/sogou.py”, line 137, in
server = ThreadingHTTPServer(server_address, Handler)
File “/usr/lib/python2.6/SocketServer.py”, line 398, in __init__
self.socket_type)
File “/usr/lib/python2.6/socket.py”, line 182, in __init__
_sock = _realsocket(family, type, proto)
socket.error: [Errno 124] Address family not supported by protocol
提示,可否解答一下,并且交流给出一些建议
可能用了IPv6地址,需要把6改成4即可。
还是不行啊,可否留个联系方式交流一下?
似乎不能用了?任何网页都显示:ERROR
The requested URL could not be retrieved
The following error was encountered:
Invalid Request
不知道耶,我很久没有使用过了。
可耻的伸手求更新…
学校宿舍里用这东西速度能到10MBps…不用的话速度orz…
今天开始悲剧了,望大虾更新啊~
The following error was encountered:
Invalid Request
Some aspect of the HTTP Request is invalid. Possible problems:
Missing or unknown request method
Missing URL
Missing HTTP Identifier (HTTP/1.0)
Request is too large
Content-Length missing for POST or PUT requests
Illegal character in hostname; underscores are not allowed
看来有待网友更新啊。。。大家可以在github上开个项目。
Hello! I appreciate your codes a lot! For a Youku fan outside Mainland China, this program means a lot. In fact, I’m also a programmer.(not professional, though) Recently I was working on the github project youtube-dl. (https://github.com/yan12125/youtube-dl) To download Youku videos, I use Sogou proxy mentioned here. Sorry that I copy lots of codes here without your agreement in advance. Now I want to make a pull request to rg3/youtube-dl. To prevent potential legal problems, I’d like to ask the license type of the proxy algorithm here. I hope the codes here can help people outside Mainland China in a more broaden way. ^^
PS: I’m not a native speaker, so sorry if my English is poor.
Great work! Enjoy the code
You can speek Chinese here……
Thanks. But can I use your codes in my codes?
It’s O.K. It’s open source. But not for any commercial use.
Thanks a lot for such a fast reply!
楼主你好,我想在mac下想用搜狗代理,在chrome里上网,这个代码应该怎么改?many thx!
直接可以运行的吧
显示Please set your browser’s proxy to (”,1998)
我不知道什么意思…谢谢!
郁闷啊……好像sogou已经封杀了这个脚本。
我把这个脚本放到了openwrt上运行的时候才发现无论怎样都显示:
Try Sogou Explorer now!
click here!
Generated Mon, 02 Sep 2013 09:14:15 GMT by tc_194_6.sogou-in.domain (squid/2.6.STABLE23)
或者是
ERROR
The requested URL could not be retrieved
Windows上运行呢?
win上很正常,能够使用……奇怪……这是怎么回事呢……?
朋友,你是如何做的?怎么在openwrt上运行的?
openwrt上有python啊,装了python的包就可以直接运行py脚本了
楼主我今天用你的scut.tk:1998发现不能用了,我也是scut的
我今天修改了下这个脚本,把途中的一些数据打了出来,结果发现在win上运行这个脚本和在openwrt上运行这个脚本获得的X-Sogou-Tag不同,而此时X-Sogou-Timestamp和host却是完全相同的。其结果就是这个脚本能够正常地在win上运行,而在openwrt上则会提示这样的错误:
======================
Try Sogou Explorer now!
click here!
Generated Mon, 02 Sep 2013 09:14:15 GMT by tc_194_6.sogou-in.domain (squid/2.6.STABLE23)
=======================
难道是计算过程在win和linux上居然会有差异么?
烦请指教下……
打出的数据如图:
http://img1.tuchuang.org/uploads/2013/09/123(2).jpg
左侧是在win上运行的结果,右侧是在openwrt上运行的结果,host相同,Timestamp相同,但是X-Sogou-Tag不同。
我又检查了下calc_sogou_hash这个函数,发现这里有一处问题:
我添加了部分输出代码:
def calc_sogou_hash(t, host):
s = (t + host + ‘SogouExplorerProxy’).encode(‘ascii’)
print(s)
code = len(s)
print(code)
dwords = int(len(s)/4)
print(dwords)
rest = len(s) % 4
print(rest)
v = unpack(str(dwords) + ‘i’+str(rest)+’s’, s)
print(v)
在win上和在openwrt上分别得到了如下的结果:
win
===================
523dc20bxiaoxia.orgSogouExplorerProxy
37
9
1
(1681076789, 1647325795, 1868654968, 778135928, 1399288431, 1970235247, 1819310149, 1919251055, 2020569680, ‘y’)
===================
openwrt
===================
523dc20bxiaoxia.orgSogouExplorerProxy
37
9
1
(892482404, 1664233570, 2020172143, 2020172078, 1869768531, 1869049717, 1165521004, 1869768050, 1349676920, ‘y’)
===================
确定了问题发生在 v = unpack(str(dwords) + ‘i’+str(rest)+’s’, s) 这一句。这一句代码在win上和openwrt上会得到不同的结果,不过我不太懂这个代码的含义,您能够给我具体解释下吗?
哈,解决了!
你的代码存在一个问题,没有考虑openwrt和win平台下字节序不同。
v = unpack(str(dwords) + ‘i’+str(rest)+’s’, s) 这一句在win平台下正常,但是linux平台下会因为字节序相反而出错。
正确的写法应该是 v = unpack(‘<' + str(dwords) + 'i'+str(rest)+'s', s)
改掉这一处之后,这个py脚本就能够在openwrt路由器上正常运行了!!!
好吧,我现在才看到这条评论~~~
作为几天前一个完全不懂python的文科生……我只能做到这里了……TAT……Orz
能否发个邮件具体指导下我怎么在路由器的op环境下搞定这个代理脚本的?感激不尽~
按照你的方法修改脚本以后在路由器上依然无法运行,能否发一个你在路由器上可运行的脚本给我试试?能否交流交流?
http://d.pr/f/ChEo
i表示4字节的整型数字,难道在openwrt上表现为2字节或者8字节了?哦,我明白了,可能是因为big endian和little endian的问题。 x86的cpu是little endian的,而mips是big endian的吧。
你试试把i改成!i或者>i或者
会不会是你的路由器上的Python版本过低导致的呢?
源代码部署connect用不了,求测试.
CONNECT bitbucket.org:443
HTTP/1.1 403 Forbidden
ERROR: Error Unknown
Try Sogou Explorer now!
click here!
Generated Sun, 22 Sep 2013 00:10:21 GMT by tc_202_3.sogou-in.domain (squid/2.6.STABLE23)
非CONNECT有问题么?
没问题,确认connect之前已加sogou头信息,但是返回403 forbidden,会不会connect和get的sogou头信息算法有区别?求测试啊
你CONNECT的时候有添加X-Sogou-Tag的么?还有,你把要connect的域名改成www.google.com看看
http://www.google.com也是一样的,确定添加了X-Sogou-Tag
大神,有些少见的http method能不能支持啊,比如options、head这些。
或者能不能加些代码,遇上非get/post/connect的方法就跳过代理直接访问。(我知道这样一来这个代理就不是单纯的代理程序了,但是我不懂py,而偶尔遇到这些http方法就会报错而无法正常访问相关资源,老是切换代理开启关闭也麻烦,所以希望能在代码里另外加上http方法不支持时跳过代理的功能。)
这些方法会在什么地方出现呢?浏览器应该不会自己发送这些请求的吧
确实,这些都是在浏览器访问www时少见的方法,如果要支持起来有难度,则希望有绕过代理程序的fallback。
options会出现在ajax跨域中 http://blog.csdn.net/net_lover/article/details/5172522
head只返回响应头,当仅需检测Content-Length、Location时可以用到。
我是在日常使用是,偶尔遇到ajax跨域(很少见,我现在一时也找不到例子)、以及使用的一个GM脚本会用head方法获取重定向网址,发现这个py报错。
这个源码能不能编译成安卓系统支持的的apk文件啊
我也想,不过配置太低,应该跑不起android。能跑起android的路由器,成本应该在300以上。
如果直接用手机呢,这个代理的网络是不能用路由共享的,我本意是直接用在手机上代理,在普通路由上装安卓系统不太现实。每次发完评论不会立即显示,所以不好意思出现下面的那条评论了
应该要root权限才可以做。
你给支个招,怎么做,我手机已经root了,能不能直接用你的代码直接转
这个代码能不能做成apk在手机上用啊
Pingback引用通告: 西工大的猫 v1.3 | 李劼杰的博客
还有 上网用的锐捷客户端 能否做成apk 在手机或是平板上用啊?需要怎么做呢,请赐教!
xiaoxia,在武汉教育网中,这个已经不能使用了,改了各种服务器也不行,基本是抽风状态,即使可以,也很慢,时常抽风,不知你是否有update?
服务器依然是用sogou的,这个程序还是可以正常工作的:D
部分地址挂了
proxy_host = ‘h’ + str(random.randint(0,3)) + ‘.edu.bj.ie.sogou.com’
不能用了是抽风了还是别的问题?
[thread_id = 2] connect to server [115.25.216.18:80] failed: 10061
[thread_id = 4] connect to server [115.25.216.18:80] failed: 10061
楼主,能ping通搜狗服务器,但是却连不上是什么原因 昨天还好好的 难道是学校封掉代理了? 我是小白。。
昨天早上开始代理完全不能用了.
ping服务器是9-11的服务器可用.
但是代理程序提示连不上.
用的是sougouproxyjumper,原理应该是一样的吧.
小虾,搜狗好像已经关闭了校园网的代理,h0-h3只有在电信网络中才能连接,h4-h7、h12-h16已经彻底关闭。h8-h11能ping上,但已经不提供代理服务了。。。我这是陕西,你那边也是这样吗?
楼主,最近西工大这里用免费模式登陆锐捷的话,代理连不上sogou服务器了。但在命令行下能够ping通,是不是学校网络中心把这个代理给封杀了。 我是小白 求解惑
小虾,这个代理西安教育网内不能用了,能不能给改一下?
代理已经失效。
最近全部代理服务器地址都ping不通了,不知道是搜狗的服务器挂了还是我们学校网络的问题
好像已经失效了。sogou已经封杀了。
求Xiaoxia 分析下新版搜狗浏览器的加速代理,在教育网苦逼的学生党下载东西特别的慢。
xiaoxia 要不要再逆向分析以下搜狗最新版本的浏览器?貌似5.0版的“全网加速”功能还在,还多了个预取技术。
之前用著還可以的,今天一試好像掛了
这个很早就不能用了,搜狗升级了。
还有没有类似的教育网代理
狙击手的那个版本现在还可用啊。但是python源码在win8下跑起来各种报错,不知用python2.x还是用3.x?from可耻的伸手小白