python proxy
Project description
Zonda Python Proxy
Install
pip install zoxy
Quick start for cli
Default server path: 127.0.0.1:8080
$ ./zoxy
Customize url and port
Example: 0.0.0.0:9999
$ ./zoxy -u 0.0.0.0 -p 9999
Allowed access
Example:
- 127.0.0.1, mask: 255.255.255.255, port 8080
- 127.0.0.0, mask: 255.255.255.0, port: all
$ ./zoxy --allowed_access 127.0.1.1 8080 --allowed_access 127.0.0.0/24 *
Blocked access
Example:
- 127.0.0.1, mask: 255.255.255.255, port: 8080
- 127.0.0.0, mask: 255.255.255.0, port: all
$ ./zoxy --blocked_access 127.0.1.1 8080 --blocked_access 127.0.0.0/24 *
Note: Blocked access setting has higher priority than allowed access.
Forwarding
Example:
- 192.168.1.0, mask: 255.255.255.0, port: 1234 to 127.0.0.1, port: 8000
- 0.0.0.0, mask: 0.0.0.0, port: all to 127.0.0.2, port: all
$ ./zoxy --forwarding 192.168.1.0/24 1234 127.0.0.1 8000 --forwarding 0.0.0.0/0 * 127.0.0.2 *
Quick start for program
import zoxy.server
config = {
"url": "0.0.0.0",
"port": 9999,
"allowed_accesses": [
["127.0.1.1", "8080"],
["127.0.2.0/24", "1234"],
["127.0.0.0/24", "*"],
],
"blocked_accesses": [
["192.0.1.1", "8080"],
["192.0.2.0/24", "1234"],
["192.0.0.0/24", "*"],
],
"forwarding": [
["196.168.2.1", "1234", "127.0.2.1", "8000"],
["196.168.1.0/24", "1234", "127.0.0.1", "8000"],
["0.0.0.0/0", "*", "127.0.0.2", "*"],
],
"load_balancing": {
"frontend": ["127.0.0.1/32", "8080"],
"backend": [
["127.0.0.1", "9090", "80"],
["127.0.0.1", "*", "20"],
],
},
}
zoxy.server.ProxyServer(**config).listen()
Get/Set accesses
Allowed accesses
# Get
proxy_server.allowed_accesses
'''
[
["127.0.1.1/32", "8080"],
["127.0.2.0/24", "1234"],
["127.0.0.0/24", "*"],
]
'''
# Set
proxy_server.allowed_accesses = [
["111.0.1.1", "8080"],
["111.0.2.0/24", "1234"],
["111.0.0.0/24", "*"],
]
Blocked accesses
# Get
proxy_server.blocked_accesses
'''
[
["192.0.1.1/32", "8080"],
["192.0.2.0/24", "1234"],
["192.0.0.0/24", "*"],
]
'''
# Set
proxy_server.blocked_accesses = [
["111.0.1.1", "8080"],
["111.0.2.0/24", "1234"],
["111.0.0.0/24", "*"],
]
Get/Set forwarding
# Get
proxy_server.forwarding
'''
[
["196.168.2.1/32", "1234", "127.0.2.1", "8000"],
["196.168.1.0/24", "1234", "127.0.0.1", "8000"],
["0.0.0.0/0", "*", "127.0.0.2", "*"]
]
'''
# Set
proxy_server.forwarding = [
["176.168.2.1", "1234", "127.0.2.1", "8000"],
["176.168.1.0/24", "1234", "127.0.0.1", "8000"],
["176.0.0.0/8", "*", "127.0.0.2", "*"]
]
Get/Set Load balancing
# Get
proxy_server.load_balancing
'''
{
"frontend": ["127.0.0.1/32", "8080"],
"backend": [
["127.0.0.1", "9090", "80"],
["127.0.0.1", "*", "20"],
],
}
'''
# Set
proxy_server.load_balancing = {
"frontend": ["168.0.0.1/32", "8080"],
"backend": [
["111.0.0.1", "9090", "80"],
["111.0.0.1", "*", "20"],
],
}
Developer
Test
python -m unittest
Type checking
mypy zoxy
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
zoxy-0.0.5.tar.gz
(8.6 kB
view hashes)
Built Distribution
zoxy-0.0.5-py3-none-any.whl
(9.2 kB
view hashes)