initial commit
This commit is contained in:
@@ -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")
|
||||
Reference in New Issue
Block a user