initial commit

This commit is contained in:
kai
2026-03-31 18:18:35 +08:00
commit 97c48995b1
36 changed files with 5985 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
import subprocess
import time
import os
import json
import yaml
# 1. 启动 mihomo 并绑定到具体网卡 (en0)
local_port = 10850
cfg = """
mode: global
mixed-port: 10850
bind-address: '127.0.0.1'
dns:
enable: true
nameserver:
- https://223.5.5.5/dns-query
- https://1.1.1.1/dns-query
proxies:
- name: "test-direct"
type: direct
interface-name: en0
"""
with open("test_b.yaml", "w") as f:
f.write(cfg)
# 找到 mihomo
mihomo = "./.venv/bin/mihomo"
if not os.path.exists(mihomo):
mihomo = "mihomo"
proc = subprocess.Popen([mihomo, "-f", "test_b.yaml"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
time.sleep(2)
try:
from curl_cffi import requests
resp = requests.get("http://httpbin.org/ip", proxies={"http": "socks5://127.0.0.1:10850", "https": "socks5://127.0.0.1:10850"}, impersonate="chrome")
print("Mihomo (direct bound to en0) IP:", resp.json()["origin"])
resp_direct = requests.get("http://httpbin.org/ip", impersonate="chrome")
print("System (Surge default) IP:", resp_direct.json()["origin"])
finally:
proc.kill()
os.remove("test_b.yaml")