Skip to main content

made-with-python PyPI-version Hit-Count Downloads

Library for create/generation proxy tunnels.

Installation

$ pip3 install ProxyTuneller

Examples

Create proxy tunnel

import asyncio

from ProxyTunneller import Proxy, Tunnel


async def main():
    inner_proxy = Proxy('http', '104.28.10.155', 80)
    outer_proxy = Proxy('socks5', '5.9.143.59', 3128)
    tunnel = Tunnel(inner_proxy, outer_proxy, verbose_func=print)
    await tunnel.build()
    print(tunnel.url)

if __name__ == '__main__':
    asyncio.run(main())

Generate tunnels from proxy-pool

import asyncio

from ProxyTunneller import Proxy, TunnelGenerator


async def main():
    inner_proxies = [
        Proxy('http', '104.28.10.145', port)
        for port in range(13010, 13030)
    ]
    outer_proxies = [
        Proxy('socks5', '138.197.157.44', port)
        for port in range(40055, 40200)
    ]

    queue = asyncio.Queue()
    generator = TunnelGenerator(queue, inner_proxies, outer_proxies)
    # support transparent tunnels
    generator.allow_only_invisible_tunnels = False
    # close each tunnel in 20 minutes after opening (0 - not close)
    generator.tunnels_lifetime = 20*60
    generator.run(traffic_writer=print) #  or any func for writing traffic
    while True:
        try:
            tunnel = await asyncio.wait_for(queue.get(), 60)
        except asyncio.TimeoutError:
            break
        print(tunnel.url)


if __name__ == '__main__':
    asyncio.run(main())

Parallel running of generators for each proxy-provider

import asyncio
from typing import List

import databases
from ProxyTunneller import Proxy, TunnelGenerator, utils


db_url = '<URL_FOR_CONNECT_TO_YOUR_DATABASE>'
dataBase = databases.Database(db_url)


async def get_proxies() -> List[Proxy]:
    if not dataBase.is_connected:
        await dataBase.connect()
    query = f'''SELECT * FROM proxies WHERE proxy_type IN ('http', 'socks4', 'socks5')'''
    proxies = await dataBase.fetch_all(query)
    proxies = list(map(lambda proxy: Proxy(proxy['proxy_type'],
                                           proxy['host'],
                                           proxy['port'],
                                           proxy['provider_name']),
                       proxies))
    return proxies


async def fill_queue(queue: asyncio.Queue):
    inner_proxies = [
        Proxy('http', '1.0.0.101', port)
        for port in range(13010, 13030)
    ]
    outer_proxies = await get_proxies()
    grouped_proxy_lists = utils.group_objects_by_attr(outer_proxies, 'provider')

    for proxy_list in grouped_proxy_lists:
        generator = TunnelGenerator(queue, inner_proxies, proxy_list)
        generator.run()


async def main():
    queue = asyncio.Queue(maxsize=200)
    await fill_queue(queue)
    while True:
        try:
            tunnel = await asyncio.wait_for(queue.get(), 60)
        except asyncio.TimeoutError:
            await fill_queue(queue)
            continue
        print(str(tunnel))


if __name__ == '__main__':
    asyncio.run(main())

Metadata

Release files for ProxyTunneller 0.3.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ProxyTunneller 0.3.15
File Size Uploaded
ProxyTunneller-0.3.15.tar.gz 4.6 kB Details

Release files / ProxyTunneller-0.3.15.tar.gz

Download URL ProxyTunneller-0.3.15.tar.gz
Size 4.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d309d22853a25d7c1dbce93b5457a01490467dd70e8379bf7bfb1c9b8204ce85
BLAKE2b-256 checksum
How to use checksums
bafee682f231ce3e09fe2dedf7f05bc1017be68b54e5cf68848688e5fe0d269a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.9

Release history Release notifications | RSS feed

This release

0.3.15 This release

1 release file

0.3.14

1 release file

0.3.13

1 release file

0.3.12

1 release file

0.3.11

1 release file

0.3.9

1 release file

0.3.8

1 release file

0.3.7

1 release file

0.3.6

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page