Python での接続
割り当て済みの静的エンドポイントから通信します。環境変数で認証情報を読み込み、既定では HTTP プロキシサーバー経由で HTTPS にアクセスします。IP の取得や切り替え処理は含みません。
接続前の準備
実行するターミナル・コンテナー・配備先で PROXY_HOST、PROXY_PORT、PROXY_USERNAME、PROXY_PASSWORD を設定します。管理画面の現在の情報と対応ポートを使い、実際のパスワードをリポジトリー、ログ、フロントエンドへ含めないでください。
実行環境と依存関係
Python 3 と SOCKS 対応の requests を使い、proxy_example.py に保存します。
sh
python -m pip install "requests[socks]"
python proxy_example.py設定手順
python
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 NonePROXY_SCHEME の既定は http です。SOCKS5 では socks5h と対応ポートを指定し、接続先の名前をリモートで解決します。プロトコル変更による静的出口の切り替えはありません。
うまく接続できない場合
例だけ成功する場合は、実際の通信プロセス、SDK の設定、タイムアウト、再試行を確認します。TLS 証明書の検証は有効なままにしてください。例は認証情報を含むエラーを出力しません。調査ログも伏せ字にします。よくある質問を参照してください。