import socket
import ssl
import base64

# 配置参数
proxy_host = "ali.xuvps.cn"
proxy_port = 443
proxy_path = "/AuthPath/"
username = "你的用户名"
password = "你的密码"
target_host = "[www.google.com](https://www.google.com)"
target_port = 80

# 编码认证信息
auth_encoded = base64.b64encode(f"{username}:{password}".encode()).decode()

# 1. 建立标准的 TLS 连接到 Caddy
context = ssl.create_default_context()
raw_sock = socket.create_connection((proxy_host, proxy_port))
tls_sock = context.wrap_socket(raw_sock, server_hostname=proxy_host)

# 2. 向伪装路径发送标准的 HTTP CONNECT 请求
# 注意：我们将目标网站拼在传统的 HTTP 请求流里
connect_request = (
    f"CONNECT {target_host}:{target_port} HTTP/1.1\r\n"
    f"Host: {target_host}:{target_port}\r\n"
    f"Proxy-Authorization: Basic {auth_encoded}\r\n"
    f"X-Proxy-Path: {proxy_path}\r\n"  # 某些后端通过 header 识别，若后端纯靠 URL 路由则不需要
    f"\r\n"
)

tls_sock.sendall(connect_request.encode())

# 3. 读取响应
response = tls_sock.recv(4096).decode('utf-8', errors='ignore')
print("--- 服务器响应 ---")
print(response)

if "200" in response.split('\r\n')[0]:
    print(" 验证成功：标准 HTTPS 代理与认证完全正常！")
else:
    print(" 验证失败：请检查认证凭据或后端路由。")

tls_sock.close()