-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsimple_proxy_test.py
More file actions
133 lines (106 loc) · 4.55 KB
/
Copy pathsimple_proxy_test.py
File metadata and controls
133 lines (106 loc) · 4.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Простой тест для проверки подключения к прокси
"""
import socket
import socks
import time
import logging
# Настройка логирования
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)
logger = logging.getLogger(__name__)
# Прокси-сервер
PROXY_HOST = '217.29.63.40'
PROXY_PORT = 13918
PROXY_USERNAME = '4XEYdx'
PROXY_PASSWORD = 'b6em48'
# IPv6 адрес
IPV6_HOST = '2a06:c006:a7ff:5e95:0f0d:25bc:4ba6:3bb2'
def test_tcp_connection():
"""Тестирование прямого TCP-подключения к прокси"""
logger.info(f"Проверка доступности прокси-сервера {PROXY_HOST}:{PROXY_PORT}...")
try:
# Создаем сокет
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(5)
# Пытаемся подключиться
start_time = time.time()
result = sock.connect_ex((PROXY_HOST, PROXY_PORT))
end_time = time.time()
if result == 0:
logger.info(f"Прокси-сервер {PROXY_HOST}:{PROXY_PORT} доступен!")
logger.info(f"Время отклика: {end_time - start_time:.2f} секунд")
return True
else:
logger.error(f"Не удалось подключиться к прокси-серверу. Код ошибки: {result}")
return False
except Exception as e:
logger.error(f"Ошибка при подключении к прокси-серверу: {e}")
return False
finally:
sock.close()
def test_socks_handshake():
"""Тестирование SOCKS5-рукопожатия с прокси"""
logger.info(f"Проверка SOCKS5-рукопожатия с прокси {PROXY_HOST}:{PROXY_PORT}...")
try:
# Настраиваем SOCKS5-прокси
s = socks.socksocket()
s.set_proxy(
proxy_type=socks.SOCKS5,
addr=PROXY_HOST,
port=PROXY_PORT,
username=PROXY_USERNAME,
password=PROXY_PASSWORD
)
s.settimeout(10)
# Тестовый хост и порт (Google DNS)
test_host = '8.8.8.8'
test_port = 53
# Попытка подключения
start_time = time.time()
s.connect((test_host, test_port))
end_time = time.time()
logger.info(f"SOCKS5-рукопожатие успешно! Соединение с {test_host}:{test_port} установлено.")
logger.info(f"Время подключения: {end_time - start_time:.2f} секунд")
return True
except Exception as e:
logger.error(f"Ошибка при выполнении SOCKS5-рукопожатия: {e}")
return False
finally:
s.close()
def test_ipv6_connection():
"""Тестирование подключения к IPv6-адресу прокси"""
logger.info(f"Проверка доступности IPv6-адреса {IPV6_HOST}:{PROXY_PORT}...")
try:
# Создаем сокет для IPv6
sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
sock.settimeout(5)
# Пытаемся подключиться
start_time = time.time()
result = sock.connect_ex((IPV6_HOST, PROXY_PORT, 0, 0))
end_time = time.time()
if result == 0:
logger.info(f"IPv6-адрес {IPV6_HOST}:{PROXY_PORT} доступен!")
logger.info(f"Время отклика: {end_time - start_time:.2f} секунд")
return True
else:
logger.error(f"Не удалось подключиться к IPv6-адресу. Код ошибки: {result}")
return False
except Exception as e:
logger.error(f"Ошибка при подключении к IPv6-адресу: {e}")
return False
finally:
sock.close()
if __name__ == "__main__":
logger.info("Запуск тестов прокси...")
# Тест 1: Прямое TCP-подключение к прокси
test_tcp_connection()
# Тест 2: SOCKS5-рукопожатие
test_socks_handshake()
# Тест 3: Проверка IPv6-адреса
test_ipv6_connection()
logger.info("Тестирование завершено!")