falseen / Pysocket
Licence: apache-2.0
PySocket ,一个通过猴子补丁(monkey patch)动态修改 socket 的项目。在不修改源码的情况下给 socket 增加一些诸如限制客户端数量、前置代理之类的功能。让我们将 Monkey Patch 进行到底吧!
Programming Languages
python 139335 projects - #7 most used programming language
Projects that are alternatives of or similar to Pysocket
MultitorCreate multiple TOR instances with a load-balancing.
Stars: ✭ 624 (+477.78%)
Mutual labels: proxy, socket
BusBus 是一个基础框架、服务套件,它基于Java8编写,参考、借鉴了大量已有框架、组件的设计,可以作为后端服务的开发基础中间件。代码简洁,架构清晰,非常适合学习使用。
Stars: ✭ 253 (+134.26%)
Mutual labels: proxy, socket
WebsocksA secure proxy based on WebSocket. 一个基于 WebSocket 的代理工具
Stars: ✭ 102 (-5.56%)
Mutual labels: proxy
WdaproxyWebDriverAgent Proxy
Stars: ✭ 107 (-0.93%)
Mutual labels: proxy
Proxy poolpython 代理池
Stars: ✭ 105 (-2.78%)
Mutual labels: proxy
Rpm HaproxyHAproxy RPM spec and builds for CentOS 6/7
Stars: ✭ 103 (-4.63%)
Mutual labels: proxy
Deta cache缓存cache服务器
Stars: ✭ 106 (-1.85%)
Mutual labels: socket
Smargate内网穿透,c++实现,无需公网IP,小巧,易用,快速,安全,最好的多链路聚合(p2p+proxy)模式,不做之一...这才是你真正想要的内网穿透工具!
Stars: ✭ 1,378 (+1175.93%)
Mutual labels: proxy
V2ray CoreA platform for building proxies to bypass network restrictions.
Stars: ✭ 38,782 (+35809.26%)
Mutual labels: proxy
Freeproxy免费、高速的 V2Ray 代理和订阅。
Stars: ✭ 104 (-3.7%)
Mutual labels: proxy
Crackertunnel over http[s]
Stars: ✭ 107 (-0.93%)
Mutual labels: proxy
Forward Proxy150 LOC Ruby forward proxy using only standard libraries.
Stars: ✭ 105 (-2.78%)
Mutual labels: proxy
Socket.io ReduxRedux middleware to emit action via socket.io
Stars: ✭ 103 (-4.63%)
Mutual labels: socket
Rltm.jsEasily swap realtime providers with a single code base
Stars: ✭ 106 (-1.85%)
Mutual labels: socket
Chatroomvue2聊天室,图灵机器人,node爬虫
Stars: ✭ 103 (-4.63%)
Mutual labels: socket
LibqtshadowsocksA lightweight and ultra-fast shadowsocks library written in C++14 with Qt framework
Stars: ✭ 1,455 (+1247.22%)
Mutual labels: proxy
Videop2proxyProxy to enable P2P only cameras to work with standard protocols.
Stars: ✭ 102 (-5.56%)
Mutual labels: proxy
EarlyapProxy specifically available for AP scores to enable simple early access to your scores without any storing of your College Board account details or dealing with untrustable proxies.
Stars: ✭ 104 (-3.7%)
Mutual labels: proxy
FrpA fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
Stars: ✭ 51,746 (+47812.96%)
Mutual labels: proxy
PySocket
PySocket ,一个通过猴子补丁(monkey patch)动态修改 socket 的项目。本项目源于一个朋友的需求,当时他想限制shadowsocks客户端的数量,但又不想修改源码,于是我为他写了这个代码,原代码发布在gist上,现在迁移了过来,并且增加了一些新的功能。以后可能还会增加一些新功能,让我们将 Monkey Patch 进行到底吧!
功能:
通过猴子补丁的方式给 socket 动态地添加一些增强功能,比如限制客户端数量、前置代理什么的。
使用的时候只要把对应文件夹中的 socket.py 文件放到程序的目录即可生效,不用修改任何源码。
注意:
- 对于通过pip安装的程序,需要放到执行文件所在的文件夹,但不建议这么做,可能会影响其他程序。建议不要用pip安装。
- 对于shadowsocks来说,需要把socket.py文件放到根目录(即shadowsocks目录),而不能放到 shadowsocks/shadowsocks 目录。具体原因不明,有时间再好好查一下。
说明:
项目中每个文件夹代表不同的功能。
以下是每个文件夹的功能和说明。
-
shadowsocks: 给服务端添加前置代理的功能(原则上也适用于客户端),支持 http、socks4、socks5 代理。并且通过hook的方式去掉了ss的dns查询,ss在接收到数据之后会直接把域名和请求一起发给代理。
-
proxy:基本跟shadowsocks一样,只是去掉了hook的代码。
-
Limit_Clients:限制客户端数量(基于ip),支持tcp和udp,修改了close方法,在关闭连接的时候清理client list,基本上完美了。(目前python3下还有一点小问题,暂时还没想好怎么去解决)
-
orgin_socket:原始的socket,放在这里只是为了方便查看代码。毕竟 _socket.pyd 是加密的。
代理部分的代码来自 PySocks 项目:https://github.com/Anorov/PySocks
本来我也实现了一个socks5,但http的不想自己写了,索性就用别人代码吧。PySocks 的代码质量还是比较高的,就是太复杂了。如果是我实现的话会简化不少。
原理说明:
默认情况下,python程序在运行的时候会导入系统中的 socket 文件,但是把这个socket文件放到程序的目录之后, 它就会引用这个我们自定义的socket文件。 然后我们再在这个文件中再导入真正的socket包,并在原 socket 的基础上加以修改,最终程序调用的就是经过我们修改的socket文件了。
最后我想说的是,python 真的是世界上最好的语言,太自由了!!!
TODO
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at
[email protected].