Skip to main content

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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zoxy-0.0.5-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file zoxy-0.0.5.tar.gz.

File metadata

  • Download URL: zoxy-0.0.5.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for zoxy-0.0.5.tar.gz
Algorithm Hash digest
SHA256 8d0ddb85a694eb539bb6942f31e7837efaa81efdeef14ab7c14dc0d40a5bea3b
MD5 a9dac9bfaf8e415bbb034b4249c95903
BLAKE2b-256 849a9efd72ba70dba25875b8c17830a2793370f6a1da6b3abd0ac9a1f25a1b75

See more details on using hashes here.

File details

Details for the file zoxy-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: zoxy-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for zoxy-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a346be67d796d6b2760a5a2fb53f46d4b06fb42c08faa8c86c15f04191fc2797
MD5 a8b2b02416fe1d2faadda18415eb4563
BLAKE2b-256 92304e1fa04aafc08e02629c29dd469339c8b3d4aaf72de6401f5f5937c45c8f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page