Skip to main content

aiohttp-socks

CI Coverage Status PyPI version

The aiohttp-socks package provides a proxy connector for aiohttp. Supports SOCKS4(a), SOCKS5(h), HTTP (tunneling) as well as Proxy chains. It uses python-socks for core proxy functionality.

Requirements

  • Python >= 3.8
  • aiohttp >= 3.10.0
  • python-socks[asyncio] >= 1.0.1

Installation

pip install aiohttp_socks

Usage

aiohttp usage:

import aiohttp
from aiohttp_socks import ProxyType, ProxyConnector, ChainProxyConnector


async def fetch(url):
    connector = ProxyConnector.from_url('socks5://user:password@127.0.0.1:1080')
    
    ### or use ProxyConnector constructor
    # connector = ProxyConnector(
    #     proxy_type=ProxyType.SOCKS5,
    #     host='127.0.0.1',
    #     port=1080,
    #     username='user',
    #     password='password',
    #     rdns=True
    # )
    
    ### proxy chaining (since ver 0.3.3)
    # connector = ChainProxyConnector.from_urls([
    #     'socks5://user:password@127.0.0.1:1080',
    #     'socks4://127.0.0.1:1081',
    #     'http://user:password@127.0.0.1:3128',
    # ])
    async with aiohttp.ClientSession(connector=connector) as session:
        async with session.get(url) as response:
            return await response.text()

aiohttp-socks also provides open_connection and create_connection functions:

from aiohttp_socks import open_connection

async def fetch():
    reader, writer = await open_connection(
        proxy_url='socks5://user:password@127.0.0.1:1080',
        host='check-host.net',
        port=80
    )
    request = (b"GET /ip HTTP/1.1\r\n"
               b"Host: check-host.net\r\n"
               b"Connection: close\r\n\r\n")

    writer.write(request)
    return await reader.read(-1)

Why yet another SOCKS connector for aiohttp

Unlike aiosocksy, aiohttp_socks has only single point of integration with aiohttp. This makes it easier to maintain compatibility with new aiohttp versions.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiohttp_socks-0.9.2.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

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

aiohttp_socks-0.9.2-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file aiohttp_socks-0.9.2.tar.gz.

File metadata

  • Download URL: aiohttp_socks-0.9.2.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for aiohttp_socks-0.9.2.tar.gz
Algorithm Hash digest
SHA256 d68f30f86e89b3d601bfa87211dc9b616cd360f835a0c80544361b37e8c73610
MD5 14d5d99a0c2ed3df0255368dd2f51e38
BLAKE2b-256 642e5e74e6aa6baad97dbde45f34a74b77c09678777842f855d8c18e5c252567

See more details on using hashes here.

File details

Details for the file aiohttp_socks-0.9.2-py3-none-any.whl.

File metadata

  • Download URL: aiohttp_socks-0.9.2-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for aiohttp_socks-0.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 146d9b0a921b712112a2da3d63633141eb63710b949102ccecc1ab1bb2e2548f
MD5 fdffebe6d7a4f35b9aeb1c772c2a2e4e
BLAKE2b-256 d4299dcfa4825c1a900fe37f53afc330ed2d160652ce0afdf8000970045d174e

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 Sentry Error logging StatusPage Status page