PHP 8.2.30
Preview: sockshandler.py Size: 2.84 KB
//opt/alt/python37/lib/python3.7/site-packages/sockshandler.py

#!/usr/bin/env python
"""
SocksiPy + urllib2 handler

version: 0.3
author: e<e@tr0ll.in>

This module provides a Handler which you can use with urllib2 to allow it to tunnel your connection through a socks.sockssocket socket, with out monkey patching the original socket...
"""
import ssl

try:
    import urllib2
    import httplib
except ImportError: # Python 3
    import urllib.request as urllib2
    import http.client as httplib

import socks # $ pip install PySocks

def merge_dict(a, b):
    d = a.copy()
    d.update(b)
    return d

class SocksiPyConnection(httplib.HTTPConnection):
    def __init__(self, proxytype, proxyaddr, proxyport=None, rdns=True, username=None, password=None, *args, **kwargs):
        self.proxyargs = (proxytype, proxyaddr, proxyport, rdns, username, password)
        httplib.HTTPConnection.__init__(self, *args, **kwargs)

    def connect(self):
        self.sock = socks.socksocket()
        self.sock.setproxy(*self.proxyargs)
        if type(self.timeout) in (int, float):
            self.sock.settimeout(self.timeout)
        self.sock.connect((self.host, self.port))

class SocksiPyConnectionS(httplib.HTTPSConnection):
    def __init__(self, proxytype, proxyaddr, proxyport=None, rdns=True, username=None, password=None, *args, **kwargs):
        self.proxyargs = (proxytype, proxyaddr, proxyport, rdns, username, password)
        httplib.HTTPSConnection.__init__(self, *args, **kwargs)

    def connect(self):
        sock = socks.socksocket()
        sock.setproxy(*self.proxyargs)
        if type(self.timeout) in (int, float):
            sock.settimeout(self.timeout)
        sock.connect((self.host, self.port))
        self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file)

class SocksiPyHandler(urllib2.HTTPHandler, urllib2.HTTPSHandler):
    def __init__(self, *args, **kwargs):
        self.args = args
        self.kw = kwargs
        urllib2.HTTPHandler.__init__(self)

    def http_open(self, req):
        def build(host, port=None, timeout=0, **kwargs):
            kw = merge_dict(self.kw, kwargs)
            conn = SocksiPyConnection(*self.args, host=host, port=port, timeout=timeout, **kw)
            return conn
        return self.do_open(build, req)

    def https_open(self, req):
        def build(host, port=None, timeout=0, **kwargs):
            kw = merge_dict(self.kw, kwargs)
            conn = SocksiPyConnectionS(*self.args, host=host, port=port, timeout=timeout, **kw)
            return conn
        return self.do_open(build, req)

if __name__ == "__main__":
    import sys
    try:
        port = int(sys.argv[1])
    except (ValueError, IndexError):
        port = 9050
    opener = urllib2.build_opener(SocksiPyHandler(socks.PROXY_TYPE_SOCKS5, "localhost", port))
    print("HTTP: " + opener.open("http://httpbin.org/ip").read().decode())
    print("HTTPS: " + opener.open("https://httpbin.org/ip").read().decode())

Directory Contents

Dirs: 64 × Files: 10

Name Size Perms Modified Actions
attr DIR
- drwxr-xr-x 2024-03-03 23:11:35
Edit Download
- drwxr-xr-x 2024-03-03 23:11:35
Edit Download
babel DIR
- drwxr-xr-x 2024-03-03 23:11:06
Edit Download
- drwxr-xr-x 2024-03-03 23:11:04
Edit Download
certifi DIR
- drwxr-xr-x 2024-03-03 23:11:30
Edit Download
- drwxr-xr-x 2024-03-03 23:11:30
Edit Download
chardet DIR
- drwxr-xr-x 2024-03-03 23:11:28
Edit Download
- drwxr-xr-x 2024-03-03 23:11:28
Edit Download
clcommon DIR
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
clconfig DIR
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
clevents DIR
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
clsentry DIR
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
clsummary DIR
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
clwizard DIR
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
distlib DIR
- drwxr-xr-x 2024-03-03 22:42:56
Edit Download
- drwxr-xr-x 2024-03-03 23:11:26
Edit Download
filelock DIR
- drwxr-xr-x 2024-03-03 22:42:58
Edit Download
- drwxr-xr-x 2024-03-03 22:42:58
Edit Download
future DIR
- drwxr-xr-x 2024-03-03 23:10:26
Edit Download
- drwxr-xr-x 2024-03-03 23:10:26
Edit Download
idna DIR
- drwxr-xr-x 2024-03-03 23:11:24
Edit Download
- drwxr-xr-x 2024-03-03 23:11:24
Edit Download
- drwxr-xr-x 2024-03-03 23:11:22
Edit Download
- drwxr-xr-x 2024-03-03 23:11:22
Edit Download
jinja2 DIR
- drwxr-xr-x 2024-03-03 23:11:10
Edit Download
- drwxr-xr-x 2024-03-03 23:11:10
Edit Download
- drwxr-xr-x 2024-03-03 23:11:37
Edit Download
- drwxr-xr-x 2024-03-03 23:11:37
Edit Download
jwt DIR
- drwxr-xr-x 2024-03-03 23:14:08
Edit Download
- drwxr-xr-x 2024-03-03 23:10:26
Edit Download
- drwxr-xr-x 2024-03-03 23:10:26
Edit Download
lve_utils DIR
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
past DIR
- drwxr-xr-x 2024-03-03 23:10:26
Edit Download
pip DIR
- drwxr-xr-x 2024-03-03 22:57:12
Edit Download
- drwxr-xr-x 2024-03-03 22:57:12
Edit Download
- drwxr-xr-x 2024-03-03 22:40:05
Edit Download
- drwxr-xr-x 2024-03-03 22:43:00
Edit Download
- drwxr-xr-x 2024-03-03 22:43:00
Edit Download
- drwxr-xr-x 2024-03-03 23:11:16
Edit Download
pytz DIR
- drwxr-xr-x 2024-03-03 23:11:01
Edit Download
- drwxr-xr-x 2024-03-03 23:11:01
Edit Download
raven DIR
- drwxr-xr-x 2024-03-03 23:10:23
Edit Download
- drwxr-xr-x 2024-03-03 23:10:23
Edit Download
requests DIR
- drwxr-xr-x 2024-03-03 23:11:32
Edit Download
- drwxr-xr-x 2024-03-03 23:11:32
Edit Download
- drwxr-xr-x 2024-03-03 23:10:59
Edit Download
- drwxr-xr-x 2024-03-03 22:40:05
Edit Download
- drwxr-xr-x 2024-03-03 22:40:05
Edit Download
- drwxr-xr-x 2024-03-03 23:09:02
Edit Download
- drwxr-xr-x 2024-03-03 23:11:20
Edit Download
urllib3 DIR
- drwxr-xr-x 2024-03-03 23:11:14
Edit Download
- drwxr-xr-x 2024-03-03 23:11:14
Edit Download
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
- drwxr-xr-x 2024-03-03 22:53:22
Edit Download
- drwxr-xr-x 2024-03-03 22:53:22
Edit Download
- drwxr-xr-x 2024-03-03 23:10:57
Edit Download
- drwxr-xr-x 2024-03-03 22:40:05
Edit Download
- drwxr-xr-x 2024-05-24 07:05:37
Edit Download
1.13 KB lrw-r--r-- 2023-11-14 12:11:47
Edit Download
152 B lrw-r--r-- 2023-11-13 21:35:13
Edit Download
19.48 KB lrw-r--r-- 2014-06-16 11:14:32
Edit Download
322 B lrw-r--r-- 2023-11-14 14:03:31
Edit Download
28.51 KB lrw-r--r-- 2019-09-09 17:39:33
Edit Download
33.36 KB lrw-r--r-- 2020-05-21 15:25:33
Edit Download
29.25 KB lrw-r--r-- 2016-05-21 21:54:42
Edit Download
2.84 KB lrw-r--r-- 2016-05-21 21:54:42
Edit Download
81.76 KB lrw-r--r-- 2020-07-07 22:29:25
Edit Download
8.23 KB lrw-r--r-- 2021-12-31 00:01:49
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).