py socket5 代理
python socket5 代理
#!/usr/bin/python
# Filename s5.py
# Python Dynamic Socks5 Proxy
# Usage: python s5.py 1080
# Background Run: nohup python s5.py 1080 & import socket, sys, select, SocketServer, struct, time class ThreadingTCPServer(SocketServer.ThreadingMixIn, SocketServer.TCPServer): pass
class Socks5Server(SocketServer.StreamRequestHandler): def handle_tcp(self, sock, remote): fdset = [sock, remote] while True: r, w, e = select.select(fdset, [], []) if sock in r: if remote.send(sock.recv(4096)) <= 0: break if remote in r: if sock.send(remote.recv(4096)) <= 0: break def handle(self): try: pass # print 'from ', self.client_address nothing to do. sock = self.connection # 1. Version sock.recv(262) sock.send("\x05\x00"); # 2. Request data = self.rfile.read(4) mode = ord(data[1]) addrtype = ord(data[3]) if addrtype == 1: # IPv4 addr = socket.inet_ntoa(self.rfile.read(4)) elif addrtype == 3: # Domain name addr = self.rfile.read(ord(sock.recv(1)[0])) port = struct.unpack('>H', self.rfile.read(2)) reply = "\x05\x00\x00\x01" try: if mode == 1: # 1. Tcp connect remote = socket.socket(socket.AF_INET, socket.SOCK_STREAM) remote.connect((addr, port[0])) pass # print 'To', addr, port[0] nothing do to. else: reply = "\x05\x07\x00\x01" # Command not supported local = remote.getsockname() reply += socket.inet_aton(local[0]) + struct.pack(">H", local[1])except socket.error: # Connection refused reply = '\x05\x05\x00\x01\x00\x00\x00\x00\x00\x00' sock.send(reply) # 3. Transfering if reply[1] == '\x00': # Success if mode == 1: # 1. Tcp connect self.handle_tcp(sock, remote) except socket.error: pass #print 'error' nothing to do . except IndexError: pass
def main(): filename = sys.argv[0]; if len(sys.argv)<2: print 'usage: ' + filename + ' port' sys.exit() socks_port = int(sys.argv[1]); server = ThreadingTCPServer(('', socks_port), Socks5Server) print 'bind port: %d' % socks_port + ' ok!' server.serve_forever()
if __name__ == '__main__': main()
py socket5 代理相关推荐
- golang中如何使用http,socket5代理
Golang Http use socket5 proxy 因为最近想爬取一些网站上的视频,无奈网站在墙外,只能通过代理进行爬取,因此在网上搜索关于golang使用代理的方法. 功夫不负有心人,最后我 ...
- Chrome浏览器如何使用socket5代理?
Chrome浏览器如何使用socket5代理? 转载:http://helpserver.chiwudaili.com/detail.aspx?id=60222b96a3240a1376eef8a70 ...
- socket5代理简单使用
socket是什么 有两个程序,通过一个双向的通信连接实现数据交换,这个连接的一端就是一个soccet,也叫[套接字]:socket包括IP+端口,一个连接至少需要两个socket,因为连接的一端就是 ...
- HTTP、Socket4、Socket5代理的区别
类型 作用 细节 Http 代理客户机的http访问,主要代理访问网页 作用于应用层,常用于客户访问被墙的网站,简称外网,常见的有vpn翻墙操作 Socket4 代理的是数据包的传递,只设计数据的加密 ...
- XShell配置Socket5代理
打开代理设置面板,点击:view -> Tunneling Pane 在弹出的窗口选择Forwarding Rules, 在空白处右键:add.在弹出的Forwarding Rule,Type选 ...
- socket5代理 客户端代码
#pragma pack(push,1) //请求认证方式 typedef struct tagSocket5_Requst { char Ver; //版本号:05 ...
- 内网渗透-代理篇(reGeorg+Proxifier代理工具)
声明:贝塔安全实验室公众号大部分文章来自团队核心成员和知识星球成员,少部分文章经过原作者授权和其它公众号白名单转载.未经授权,严禁转载,如需转载,请联系开白!请勿利用文章内的相关技术从事非法测试,如因 ...
- golang 使用 http socks5 代理
目录 第一种方法: HTTP(S)代理 第二种方法: Socket5代理 第一种方法: HTTP(S)代理 代码实现如下: package mainimport ("fmt"&qu ...
- Qt文档阅读笔记-QNetworkProxy::ProxyType解析(Qt设置Fiddler代理)
enum QNetworkProxy::ProxyType 这个枚举类型是Qt提供的网络代理的类型,一共可以分为2个大类,一个叫transparent proxies,一个叫caching proxi ...
最新文章
- 图很难理解?看这篇图论基础与图存储结构就够了
- spark RDD详解及源码分析
- Redis与Zookeeper实现分布式锁的区别
- 【youcans 的 OpenCV 例程200篇】144. 基于灰度形态学的纹理分割
- 安卓 开源 挣钱_在开源中赚钱并享受乐趣
- Android异常总结---type Status report message HTTP method GET is not supported by this URL
- MasterPage 变化了的 ClientID ctl00_
- matplotlib——散点图
- apache poi使用例_4.Apache POI使用详解
- SQL Server 2008 R2 事务与隔离级别实例讲解
- python监控钉钉群消息_使用python对mysql主从进行监控,并调用钉钉发送报警信息...
- 点扩散函数point spread function (PSF)
- ASCII字符绘图网站推荐及使用Python绘制ASCII字符画
- Python获取计算机CPU核数
- [UWP/WPF]在应用开发中安全使用文件资源
- div实现拖动时候出现禁止图标解决——e.preventDefault e.preventDefault();
- 解决 Unrecognized field code , not marked as ignorable 问题
- 一夜闪崩35%!全球GPU显卡价格开始大幅度跳水
- word表格导出为图像
- 天线理论巴拉尼斯_天线理论与技术 - 心理学书籍 psychspace.com/钟顺时/