mirror of https://github.com/dnomd343/ProxyC
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.7 KiB
53 lines
1.7 KiB
3 years ago
|
#!/usr/bin/python
|
||
|
# -*- coding:utf-8 -*-
|
||
|
|
||
|
def __originConfig(proxyInfo: dict) -> list:
|
||
|
return [
|
||
|
'client',
|
||
|
'--server', proxyInfo['server'] + ':' + str(proxyInfo['port']),
|
||
|
'--password', proxyInfo['passwd']
|
||
|
]
|
||
|
|
||
|
def __wsConfig(proxyInfo: dict) -> list:
|
||
|
return [
|
||
|
'wsclient',
|
||
|
'--wsserver', 'ws://' + proxyInfo['ws']['host'] + ':' + str(proxyInfo['port']) + proxyInfo['ws']['path'],
|
||
|
'--address', proxyInfo['server'] + ':' + str(proxyInfo['port']),
|
||
|
'--password', proxyInfo['passwd']
|
||
|
]
|
||
|
|
||
|
def __wssConfig(proxyInfo: dict) -> list:
|
||
|
wssConfig = [
|
||
|
'wssclient',
|
||
|
'--wssserver', 'wss://' + proxyInfo['ws']['host'] + ':' + str(proxyInfo['port']) + proxyInfo['ws']['path'],
|
||
|
'--address', proxyInfo['server'] + ':' + str(proxyInfo['port']),
|
||
|
'--password', proxyInfo['passwd']
|
||
|
]
|
||
|
if not proxyInfo['ws']['secure']['verify']:
|
||
|
wssConfig += ['--insecure']
|
||
|
return wssConfig
|
||
|
|
||
|
def load(proxyInfo: dict, socksPort: int, configFile: str) -> tuple[list, str or None, dict]:
|
||
|
"""
|
||
|
Brook配置载入
|
||
|
proxyInfo: 节点信息
|
||
|
socksPort: 本地通讯端口
|
||
|
configFile: 配置文件路径
|
||
|
|
||
|
return startCommand, fileContent, envVar
|
||
|
"""
|
||
|
command = [
|
||
|
'brook',
|
||
|
'--debug', '--listen', 'skip success', # debug on
|
||
|
]
|
||
|
if proxyInfo['ws'] is None:
|
||
|
command += __originConfig(proxyInfo) # original mode
|
||
|
elif proxyInfo['ws']['secure'] is None:
|
||
|
command += __wsConfig(proxyInfo) # ws mode
|
||
|
else:
|
||
|
command += __wssConfig(proxyInfo) # wss mode
|
||
|
command += [
|
||
|
'--socks5', '127.0.0.1:' + str(socksPort)
|
||
|
]
|
||
|
return command, None, {}
|