python-socks 2.4.4__py3-none-any.whl → 2.5.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- python_socks/_connectors/socks5_async.py +23 -1
- python_socks/_connectors/socks5_sync.py +23 -1
- python_socks/_version.py +1 -1
- {python_socks-2.4.4.dist-info → python_socks-2.5.1.dist-info}/METADATA +8 -11
- {python_socks-2.4.4.dist-info → python_socks-2.5.1.dist-info}/RECORD +8 -8
- {python_socks-2.4.4.dist-info → python_socks-2.5.1.dist-info}/WHEEL +1 -1
- {python_socks-2.4.4.dist-info → python_socks-2.5.1.dist-info}/LICENSE.txt +0 -0
- {python_socks-2.4.4.dist-info → python_socks-2.5.1.dist-info}/top_level.txt +0 -0
|
@@ -65,6 +65,28 @@ class Socks5AsyncConnector(AsyncConnector):
|
|
|
65
65
|
data = conn.send(request)
|
|
66
66
|
await stream.write_all(data)
|
|
67
67
|
|
|
68
|
-
data = await
|
|
68
|
+
data = await self._read_reply(stream)
|
|
69
69
|
reply: socks5.ConnectReply = conn.receive(data)
|
|
70
70
|
return reply
|
|
71
|
+
|
|
72
|
+
# noinspection PyMethodMayBeStatic
|
|
73
|
+
async def _read_reply(self, stream: AsyncSocketStream) -> bytes:
|
|
74
|
+
data = await stream.read_exact(4)
|
|
75
|
+
if data[0] != socks5.SOCKS_VER:
|
|
76
|
+
return data
|
|
77
|
+
if data[1] != socks5.ReplyCode.SUCCEEDED:
|
|
78
|
+
return data
|
|
79
|
+
if data[2] != socks5.RSV:
|
|
80
|
+
return data
|
|
81
|
+
|
|
82
|
+
addr_type = data[3]
|
|
83
|
+
|
|
84
|
+
if addr_type == socks5.AddressType.IPV4:
|
|
85
|
+
data += await stream.read_exact(6)
|
|
86
|
+
elif addr_type == socks5.AddressType.IPV6:
|
|
87
|
+
data += await stream.read_exact(18)
|
|
88
|
+
elif addr_type == socks5.AddressType.DOMAIN:
|
|
89
|
+
host_len, *_ = await stream.read_exact(1)
|
|
90
|
+
data += await stream.read_exact(host_len + 2)
|
|
91
|
+
|
|
92
|
+
return data
|
|
@@ -56,6 +56,28 @@ class Socks5SyncConnector(SyncConnector):
|
|
|
56
56
|
data = conn.send(request)
|
|
57
57
|
stream.write_all(data)
|
|
58
58
|
|
|
59
|
-
data =
|
|
59
|
+
data = self._read_reply(stream)
|
|
60
60
|
reply: socks5.ConnectReply = conn.receive(data)
|
|
61
61
|
return reply
|
|
62
|
+
|
|
63
|
+
# noinspection PyMethodMayBeStatic
|
|
64
|
+
def _read_reply(self, stream: SyncSocketStream) -> bytes:
|
|
65
|
+
data = stream.read_exact(4)
|
|
66
|
+
if data[0] != socks5.SOCKS_VER:
|
|
67
|
+
return data
|
|
68
|
+
if data[1] != socks5.ReplyCode.SUCCEEDED:
|
|
69
|
+
return data
|
|
70
|
+
if data[2] != socks5.RSV:
|
|
71
|
+
return data
|
|
72
|
+
|
|
73
|
+
addr_type = data[3]
|
|
74
|
+
|
|
75
|
+
if addr_type == socks5.AddressType.IPV4:
|
|
76
|
+
data += stream.read_exact(6)
|
|
77
|
+
elif addr_type == socks5.AddressType.IPV6:
|
|
78
|
+
data += stream.read_exact(18)
|
|
79
|
+
elif addr_type == socks5.AddressType.DOMAIN:
|
|
80
|
+
host_len, *_ = stream.read_exact(1)
|
|
81
|
+
data += stream.read_exact(host_len + 2)
|
|
82
|
+
|
|
83
|
+
return data
|
python_socks/_version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
__title__ = 'python-socks'
|
|
2
|
-
__version__ = '2.
|
|
2
|
+
__version__ = '2.5.1'
|
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: python-socks
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5.1
|
|
4
4
|
Summary: Core proxy (SOCKS4, SOCKS5, HTTP tunneling) functionality for Python
|
|
5
5
|
Home-page: https://github.com/romis2012/python-socks
|
|
6
6
|
Author: Roman Snegirev
|
|
7
7
|
Author-email: snegiryev@gmail.com
|
|
8
8
|
License: Apache 2
|
|
9
9
|
Keywords: socks socks5 socks4 http proxy asyncio trio curio anyio
|
|
10
|
-
Platform: UNKNOWN
|
|
11
10
|
Description-Content-Type: text/markdown
|
|
12
11
|
License-File: LICENSE.txt
|
|
13
12
|
Provides-Extra: anyio
|
|
14
|
-
Requires-Dist: anyio
|
|
13
|
+
Requires-Dist: anyio<5.0.0,>=3.3.4; extra == "anyio"
|
|
15
14
|
Provides-Extra: asyncio
|
|
16
|
-
Requires-Dist: async-timeout
|
|
15
|
+
Requires-Dist: async-timeout>=3.0.1; extra == "asyncio"
|
|
17
16
|
Provides-Extra: curio
|
|
18
|
-
Requires-Dist: curio
|
|
17
|
+
Requires-Dist: curio>=1.4; extra == "curio"
|
|
19
18
|
Provides-Extra: trio
|
|
20
|
-
Requires-Dist: trio
|
|
19
|
+
Requires-Dist: trio>=0.16.0; extra == "trio"
|
|
21
20
|
|
|
22
21
|
## python-socks
|
|
23
22
|
|
|
24
|
-
[](https://
|
|
23
|
+
[](https://github.com/romis2012/python-socks/actions/workflows/ci.yml)
|
|
24
|
+
[](https://codecov.io/gh/romis2012/python-socks)
|
|
25
|
+
[](https://pypi.python.org/pypi/python-socks)
|
|
27
26
|
<!--
|
|
28
27
|
[](https://pepy.tech/project/python-socks)
|
|
29
28
|
-->
|
|
@@ -272,5 +271,3 @@ manager = ProxyPoolManager('socks5://user:password@127.0.0.1:1080')
|
|
|
272
271
|
response = manager.request('GET', 'https://check-host.net/ip')
|
|
273
272
|
print(response.data)
|
|
274
273
|
```
|
|
275
|
-
|
|
276
|
-
|
|
@@ -3,7 +3,7 @@ python_socks/_abc.py,sha256=_kK5iWNYpHuWRxhK-e6GQdVgRYxcioKIGnSYy2QzAK8,1422
|
|
|
3
3
|
python_socks/_errors.py,sha256=l2j03Zna_EJhNqF3yApTYuQ147BcY0k74pkT4HAlRp4,245
|
|
4
4
|
python_socks/_helpers.py,sha256=WTqOACKhJ80bCLWqeoXHPKp6YWCg66vLtai5AM7HJNY,2517
|
|
5
5
|
python_socks/_types.py,sha256=dgQifNf2mIwdKoX7YmI91H_lUsW9-Y0ZkZGlIV6_NNw,90
|
|
6
|
-
python_socks/_version.py,sha256=
|
|
6
|
+
python_socks/_version.py,sha256=waVCGDO0xm0lsHLCWwdAO5RLbVjIh1slonwdS2KQAuA,49
|
|
7
7
|
python_socks/_connectors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
8
|
python_socks/_connectors/abc.py,sha256=1fgjPiv64UAMiJDsJXYr-GofPGhuHTwTzaodQfrzf7Q,397
|
|
9
9
|
python_socks/_connectors/factory_async.py,sha256=y9JGVk-ub9FMuQlIp2s5y95F7JMvA2fEdWGRKLUpRXc,997
|
|
@@ -12,8 +12,8 @@ python_socks/_connectors/http_async.py,sha256=sCkEporEkm5yr5S08JjzX9VHtXjEsIqrfI
|
|
|
12
12
|
python_socks/_connectors/http_sync.py,sha256=BecdB5J8fIAMkNCgTgJqrdF82uIwBVjzoZmefKear34,878
|
|
13
13
|
python_socks/_connectors/socks4_async.py,sha256=dlQ-AwJ9gNBWMth-E4PxxfW17oWBF2Blxp71HeO80gM,1131
|
|
14
14
|
python_socks/_connectors/socks4_sync.py,sha256=m0KixzO5jQ6qHHtA5Muq7HcPjTdYPLM4AlTmWZr3SmY,1100
|
|
15
|
-
python_socks/_connectors/socks5_async.py,sha256=
|
|
16
|
-
python_socks/_connectors/socks5_sync.py,sha256=
|
|
15
|
+
python_socks/_connectors/socks5_async.py,sha256=A4ZXY-znAaVGpeKNyRdbiW0V3-EgHODNMneDJ-LlEKI,2703
|
|
16
|
+
python_socks/_connectors/socks5_sync.py,sha256=kxT4bQgbsY32BnlnAJFhHtqRz7LnC2ncG7W_Py1pfQo,2482
|
|
17
17
|
python_socks/_protocols/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
18
|
python_socks/_protocols/errors.py,sha256=4XqU4AqgrWaedmUVGMjd6TvQKXv3mV0H76s5lf8aazY,150
|
|
19
19
|
python_socks/_protocols/http.py,sha256=h6uLgiNbqrd8HUk-nX5lOnCoYRjrZWaQ2CjbOB6QDHI,4451
|
|
@@ -69,8 +69,8 @@ python_socks/sync/v2/_connect.py,sha256=eqMKsH2wVnGZhV24_t9QfsNhjbnKtnipj7wzSNct
|
|
|
69
69
|
python_socks/sync/v2/_proxy.py,sha256=-38o3QxE_FfJjQ88SK2YqBlWQgeNQQfYkGsFtYHWq94,3400
|
|
70
70
|
python_socks/sync/v2/_ssl_transport.py,sha256=MURwzvKu-S2-MI7o8KaZTvvBFOiiKIu5R0ERVIMvERE,6088
|
|
71
71
|
python_socks/sync/v2/_stream.py,sha256=Jq89x1xmIX3L_v-WyS1nRTItjTnYTcDcfDblsANxfJI,1544
|
|
72
|
-
python_socks-2.
|
|
73
|
-
python_socks-2.
|
|
74
|
-
python_socks-2.
|
|
75
|
-
python_socks-2.
|
|
76
|
-
python_socks-2.
|
|
72
|
+
python_socks-2.5.1.dist-info/LICENSE.txt,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
73
|
+
python_socks-2.5.1.dist-info/METADATA,sha256=ihKmlCJb6PxXQWRcIPjiYIJBuYUq5wuSp8LxAJzzwEk,7010
|
|
74
|
+
python_socks-2.5.1.dist-info/WHEEL,sha256=Mdi9PDNwEZptOjTlUcAth7XJDFtKrHYaQMPulZeBCiQ,91
|
|
75
|
+
python_socks-2.5.1.dist-info/top_level.txt,sha256=7qyDAVwjTZ0sIYG1iatFbE-SLpWhONjaoMQ0Ib2DX0Q,13
|
|
76
|
+
python_socks-2.5.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|