Подключение из Python
Пример отправляет запрос через выделенную статическую точку подключения. Данные берутся из окружения процесса; по умолчанию HTTP-прокси используется для HTTPS-адреса. Получения и ротации IP нет.
Подготовка
Задайте PROXY_HOST, PROXY_PORT, PROXY_USERNAME, PROXY_PASSWORD в терминале, контейнере или среде развёртывания программы. Используйте актуальные данные панели и порт выбранного протокола. Не помещайте реальные пароли в репозиторий, журналы или клиентский код.
Среда и зависимости
Нужны Python 3 и requests с поддержкой SOCKS. Сохраните код как proxy_example.py.
python -m pip install "requests[socks]"
python proxy_example.pyНастройка подключения
import os
from urllib.parse import quote
import requests
host = os.environ["PROXY_HOST"].strip("[]")
port = int(os.environ["PROXY_PORT"])
user = quote(os.environ["PROXY_USERNAME"], safe="")
password = quote(os.environ["PROXY_PASSWORD"], safe="")
scheme = os.environ.get("PROXY_SCHEME", "http")
if scheme not in {"http", "socks5h"}:
raise ValueError("PROXY_SCHEME must be http or socks5h")
host = f"[{host}]" if ":" in host else host
proxy_url = f"{scheme}://{user}:{password}@{host}:{port}"
try:
with requests.Session() as session:
session.trust_env = False
session.proxies = {"http": proxy_url, "https": proxy_url}
response = session.get("https://ip123.in/ip.json", timeout=(10, 30))
response.raise_for_status()
print(response.json())
except requests.RequestException as error:
raise SystemExit(f"Proxy request failed: {type(error).__name__}") from NoneПо умолчанию PROXY_SCHEME=http. Для SOCKS5 задайте socks5h и соответствующий SOCKS5-порт: имя назначения будет разрешаться удалённо. Смена протокола не меняет выделенный статический выход.
Если подключение не работает
Если пример работает, а приложение нет, проверьте процесс, реально выполняющий запрос, настройки SDK, тайм-ауты и повторы. Не отключайте проверку TLS-сертификатов. Пример не выводит ошибки с данными доступа; диагностические журналы тоже нужно очищать. См. FAQ.