代理链 / 中转代理

源码: https://github.com/x-haose/hs-net/blob/main/examples/proxy/transit_proxy.py

transit_proxy.py
"""
代理链 / 中转代理

通过中转代理连接上游(如国内通过 Clash 访问海外认证代理)。
循环验证所有同步引擎均支持代理链。

链路: 引擎 -> ProxyService -> Clash(中转) -> 海外认证代理 -> 目标站
"""

from hs_net import EngineEnum, ProxyService, SyncNet

# 替换为你自己的代理地址
PROXY = "http://user:pass@overseas-proxy.com:4600"
TRANSIT = "http://127.0.0.1:7897"

# 所有支持同步的引擎
SYNC_ENGINES = [
    EngineEnum.HTTPX,
    EngineEnum.REQUESTS,
    EngineEnum.CURL_CFFI,
    EngineEnum.REQUESTS_GO,
]


def main():
    svc = ProxyService(PROXY, transit=TRANSIT)

    for engine in SYNC_ENGINES:
        with SyncNet(proxy=svc, engine=engine, retries=0, timeout=30) as net:
            resp = net.get("http://ip-api.com/json/")
            ip = resp.json_data["query"]
            print(f"{engine.value:12s} -> IP: {ip}")


if __name__ == "__main__":
    main()