Skip to main content

SOCKS client and server based on asyncio

Project description

gera2ld.socks

PyPI

This is a SOCKS server and client package built with asyncio (requires Python 3.5+).

Installation

$ pip3 install gera2ld.socks

Usage

  • SOCKS server

    shell command:

    # Start a server
    $ python3 -m gera2ld.socks.server -b 127.0.0.1:1080
    

    or python script:

    from gera2ld.pyserve import run_forever
    from gera2ld.socks.server import Config, SOCKSServer
    
    config = Config('127.0.0.1:1080')
    run_forever(SOCKSServer(config).start_server())
    
  • SOCKS client

    import asyncio
    from gera2ld.socks.client import create_client
    
    client = create_client('socks5://127.0.0.1:1080')
    loop = asyncio.get_event_loop()
    loop.run_until_complete(client.handle_connect(('www.google.com', 80)))
    client.writer.write(b'...')
    print(loop.run_until_complete(client.reader.read()))
    
  • SOCKS handler for urllib

    from urllib import request
    from gera2ld.socks.client.handler import SOCKSProxyHandler
    
    handler = SOCKSProxyHandler('socks5://127.0.0.1:1080')
    
    opener = request.build_opener(handler)
    r = opener.open('https://www.example.com')
    print(r.read().decode())
    
  • SOCKS client for UDP

    import asyncio
    from gera2ld.socks.client import create_client
    
    async def main():
        client = create_client('socks5://127.0.0.1:1080')
        udp = await client.handle_udp()
        udp.write_data(b'\xc9\xa7\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03www\x06google\x03com\x00\x00\xff\x00\x01', ('114.114.114.114', 53))
        print(await udp.results.get())
    
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())
    

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

gera2ld.socks-0.5.0.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

gera2ld.socks-0.5.0-py3-none-any.whl (17.3 kB view details)

Uploaded Python 3

File details

Details for the file gera2ld.socks-0.5.0.tar.gz.

File metadata

  • Download URL: gera2ld.socks-0.5.0.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.9.6 Darwin/20.5.0

File hashes

Hashes for gera2ld.socks-0.5.0.tar.gz
Algorithm Hash digest
SHA256 1bcc9bbc55f5eb03bba2c7bc66092e15b5970b8f490d49c1e648c3cf4b6746dd
MD5 4b1883631a94794ed3e898cb847f4973
BLAKE2b-256 9bb21f513b1106195ed988653010145a6b94e73e48e9000e19a1c6a85ea3dff6

See more details on using hashes here.

File details

Details for the file gera2ld.socks-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: gera2ld.socks-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 17.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.9.6 Darwin/20.5.0

File hashes

Hashes for gera2ld.socks-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0362211167592d1bb55a2478ee8f2177ea5d47f4e9e01dec562632150cf5f03e
MD5 8e473fa4e69cb7d9e3b02eb14f0fac93
BLAKE2b-256 f927438809cb2b6681cacf98512081e691eb20fe99b3500ce4cee0e1b3ad08bc

See more details on using hashes here.

Supported by

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