[Python] 纯文本查看 复制代码 import time
import logging
import sys
import importlib.util
# 配置日志
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.StreamHandler(sys.stdout)
]
)
# 导入SunnyNet模块
from SunnyNet.SunnyNet import SunnyNet
# 第一个代理配置
proxy_config_1 = {
'type': 'socks5',
'host': '36.111.32.147',
'port': 0000,
'username': '0000',
'password': '0000'
}
# 第二个代理配置
proxy_config_2 = {
'type': 'socks5',
'host': '14.22.79.198',
'port': 0000,
'username': '0000',
'password': '0000'
}
# 第一个VX实例的进程ID
weixin_pid_1 = 19908
weixin_appex_pids_1 = [2860, 16096, 24504, 24840]
# 第二个VX实例的进程ID
weixin_pid_2 = 27456
weixin_appex_pids_2 = [4996, 7664, 11448, 24264]
# 创建第一个SunnyNet实例
print("\n=== 创建第一个代理实例 ===")
sunny1 = SunnyNet()
sunny1.set_port(8889) # 设置端口为8889
if sunny1.start():
print("✅ 第一个SunnyNet实例启动成功")
# 确保驱动已加载
if sunny1.open_drive(True):
print("✅ SunnyNet驱动加载成功")
# 构建代理URL
proxy_type = proxy_config_1['type'].lower()
if proxy_type == 'socks5':
proxy_type = 'socket5'
host = proxy_config_1['host']
proxy_port = proxy_config_1['port']
username = proxy_config_1.get('username', '')
password = proxy_config_1.get('password', '')
if username and password:
proxy_url = f"{proxy_type}://{username}:{password}@{host}:{proxy_port}"
else:
proxy_url = f"{proxy_type}://{host}:{proxy_port}"
print(f"设置上游代理: {proxy_url}")
# 设置上游代理
if sunny1.set_proxy(proxy_url, 30000):
print("✅ 上游代理设置成功")
# 添加进程到代理
sunny1.process_add_pid(weixin_pid_1)
print(f"添加进程: PID={weixin_pid_1}, 名称=WeChat.exe")
for pid in weixin_appex_pids_1:
sunny1.process_add_pid(pid)
print(f"添加进程: PID={pid}, 名称=WeChatAppEx.exe")
else:
print("❌ 上游代理设置失败")
error = sunny1.error()
print(f"错误信息: {error}")
else:
print("❌ 第一个SunnyNet实例启动失败")
error = sunny1.error()
print(f"错误信息: {error}")
# 等待一段时间,确保两个代理实例分开
time.sleep(1)
# 创建第二个SunnyNet实例
print("\n=== 创建第二个代理实例 ===")
sunny2 = SunnyNet()
sunny2.set_port(8888) # 设置端口为8888
if sunny2.start():
print("✅ 第二个SunnyNet实例启动成功")
# 驱动已经加载,不需要再次加载
print("✓ SunnyNet驱动已加载")
# 构建代理URL
proxy_type = proxy_config_2['type'].lower()
if proxy_type == 'socks5':
proxy_type = 'socket5'
host = proxy_config_2['host']
proxy_port = proxy_config_2['port']
username = proxy_config_2.get('username', '')
password = proxy_config_2.get('password', '')
if username and password:
proxy_url = f"{proxy_type}://{username}:{password}@{host}:{proxy_port}"
else:
proxy_url = f"{proxy_type}://{host}:{proxy_port}"
print(f"设置上游代理: {proxy_url}")
# 设置上游代理
if sunny2.set_proxy(proxy_url, 30000):
print("✅ 上游代理设置成功")
# 添加进程到代理
sunny2.process_add_pid(weixin_pid_2)
print(f"添加进程: PID={weixin_pid_2}, 名称=WeChat.exe")
for pid in weixin_appex_pids_2:
sunny2.process_add_pid(pid)
print(f"添加进程: PID={pid}, 名称=WeChatAppEx.exe")
else:
print("❌ 上游代理设置失败")
error = sunny2.error()
print(f"错误信息: {error}")
else:
print("❌ 第二个SunnyNet实例启动失败")
error = sunny2.error()
print(f"错误信息: {error}")
print("\n=== 测试完成 ===")
print("两个VX实例分别使用不同的代理。")
print(f"第一个VX实例 (PID: {weixin_pid_1}) 使用代理: {proxy_config_1['host']}:{proxy_config_1['port']}")
print(f"第二个VX实例 (PID: {weixin_pid_2}) 使用代理: {proxy_config_2['host']}:{proxy_config_2['port']}")
# 保持程序运行,等待用户输入
input("\n按回车键退出并关闭代理...")
# 清理资源
print("\n=== 清理资源 ===")
sunny1.stop()
print("第一个代理实例已停止")
sunny2.stop()
print("第二个代理实例已停止")
print("所有资源已清理完毕")
运行完之后两个进程都变成了第一个代理
|