xinxin
This commit is contained in:
parent
0010be1b6b
commit
905bca662e
2
.idea/auto_trade_20230130.iml
generated
2
.idea/auto_trade_20230130.iml
generated
@ -4,7 +4,7 @@
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="Python 3.6 (auto_trade_20230130)" jdkType="Python SDK" />
|
||||
<orderEntry type="jdk" jdkName="Python 3.6 (zhitou_trade)" jdkType="Python SDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
<component name="PyDocumentationSettings">
|
||||
|
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6 (auto_trade_20230130)" project-jdk-type="Python SDK" />
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.6 (zhitou_trade)" project-jdk-type="Python SDK" />
|
||||
</project>
|
Binary file not shown.
Binary file not shown.
@ -150,7 +150,7 @@ class DongWuClientTrader:
|
||||
|
||||
#设置全局代理
|
||||
proxy_ip = item['ip']
|
||||
proxy_port = str(item['port'])
|
||||
proxy_port = item['port']
|
||||
set_proxy(proxy_ip,proxy_port)
|
||||
|
||||
# exit_ip = get_proxy_ip(proxy_ip,proxy_port)
|
||||
|
@ -16,7 +16,9 @@ import pytesseract
|
||||
import warnings
|
||||
import datetime
|
||||
import os
|
||||
import logging
|
||||
from tools import *
|
||||
from config import ssid,password
|
||||
warnings.filterwarnings('ignore')
|
||||
|
||||
from pathlib import Path
|
||||
@ -35,10 +37,13 @@ class HLClientTrader:
|
||||
def __init__(self, account_name, exe_path=path):
|
||||
self.path = exe_path
|
||||
self.account_name = account_name
|
||||
self.log = Logger(f'{root_path}/logs',self.account_name)
|
||||
|
||||
# 加载WiFi配置文件
|
||||
self.wifi_configs = self._load_wifi_config()
|
||||
# 确保logs目录存在
|
||||
logs_dir = root_path / 'logs'
|
||||
logs_dir.mkdir(exist_ok=True)
|
||||
|
||||
# 初始化日志系统
|
||||
self._setup_logging()
|
||||
|
||||
# 用户券商信息
|
||||
sql = f"select * from ainvest_usercount where username='{account_name}'"
|
||||
@ -47,27 +52,39 @@ class HLClientTrader:
|
||||
self.securities_password = str(df_count['securities_password'].tolist()[0])
|
||||
self.communication_password = str(df_count['communication_password'].tolist()[0])
|
||||
|
||||
def _load_wifi_config(self):
|
||||
"""加载WiFi配置文件"""
|
||||
config_path = os.path.join(root_path, 'wifi_config.txt')
|
||||
try:
|
||||
with open(config_path, 'r', encoding='utf-8') as f:
|
||||
lines = f.readlines()
|
||||
wifi_configs = []
|
||||
for line in lines:
|
||||
line = line.strip()
|
||||
if line and not line.startswith('#'):
|
||||
parts = line.split(',')
|
||||
if len(parts) == 2:
|
||||
wifi_configs.append({'ssid': parts[0].strip(), 'password': parts[1].strip()})
|
||||
self.log.info(f"WiFi配置加载成功,共{len(wifi_configs)}个配置")
|
||||
return wifi_configs
|
||||
except FileNotFoundError:
|
||||
self.log.warn(f"WiFi配置文件 {config_path} 不存在,使用默认配置")
|
||||
return [{'ssid': 'ZTE_A5DA76', 'password': '1234567890'}]
|
||||
except Exception as e:
|
||||
self.log.error(f"WiFi配置文件读取错误: {e}")
|
||||
return [{'ssid': 'ZTE_A5DA76', 'password': '1234567890'}]
|
||||
def _setup_logging(self):
|
||||
"""设置日志系统"""
|
||||
# 获取当前模块的logger
|
||||
self.logger = logging.getLogger(__name__)
|
||||
|
||||
# 为当前账户添加文件处理器,记录到logs目录
|
||||
logs_file = os.path.join(root_path, 'logs', f'{self.account_name}.log')
|
||||
|
||||
# 检查是否已经有针对这个账户的处理器,避免重复添加
|
||||
account_handler_exists = False
|
||||
for handler in self.logger.handlers:
|
||||
if hasattr(handler, 'baseFilename') and handler.baseFilename == os.path.abspath(logs_file):
|
||||
account_handler_exists = True
|
||||
break
|
||||
|
||||
if not account_handler_exists:
|
||||
formatter = logging.Formatter('[%(asctime)s] [%(levelname)s] %(message)s', '%Y-%m-%d %H:%M:%S')
|
||||
file_handler = logging.FileHandler(logs_file, encoding='utf-8')
|
||||
file_handler.setFormatter(formatter)
|
||||
file_handler.setLevel(logging.DEBUG)
|
||||
self.logger.addHandler(file_handler)
|
||||
|
||||
# 如果根logger没有处理器(单独运行时),添加控制台处理器
|
||||
root_logger = logging.getLogger()
|
||||
if not root_logger.handlers:
|
||||
console_handler = logging.StreamHandler()
|
||||
console_handler.setFormatter(logging.Formatter('[%(asctime)s] [%(levelname)s] %(message)s', '%Y-%m-%d %H:%M:%S'))
|
||||
console_handler.setLevel(logging.INFO)
|
||||
self.logger.addHandler(console_handler)
|
||||
|
||||
# 设置logger级别
|
||||
self.logger.setLevel(logging.DEBUG)
|
||||
|
||||
|
||||
def exit(self):
|
||||
'''
|
||||
@ -104,62 +121,44 @@ class HLClientTrader:
|
||||
path=self.path, timeout=1
|
||||
)
|
||||
self.exit()
|
||||
self.log.warn('There are running programs, and there are processes in retreat')
|
||||
self.logger.warning('There are running programs, and there are processes in retreat')
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# 启动软件进程,输入账号密码
|
||||
self.log.info('Start login')
|
||||
self.logger.info('Start login')
|
||||
|
||||
start_time = time.time()
|
||||
reset_proxy_to_default() # 初始化proxy信息
|
||||
|
||||
# 重置mac
|
||||
set_mac = SetMac()
|
||||
set_mac.run()
|
||||
# 尝试连接WiFi
|
||||
connected = False
|
||||
for i, wifi_config in enumerate(self.wifi_configs):
|
||||
wifi_ssid = wifi_config['ssid']
|
||||
wifi_password = wifi_config['password']
|
||||
|
||||
if i == 0:
|
||||
self.log.info(f"尝试连接主WiFi: {wifi_ssid}")
|
||||
else:
|
||||
self.log.info(f"尝试连接备用WiFi: {wifi_ssid}")
|
||||
|
||||
if connect_wifi(wifi_ssid, wifi_password):
|
||||
self.log.info(f"网络已就绪(WiFi: {wifi_ssid})")
|
||||
connected = True
|
||||
break
|
||||
|
||||
if not connected:
|
||||
self.log.error("无法建立网络连接,请检查配置")
|
||||
|
||||
connect_wifi(ssid,password)
|
||||
get_ip_times = 0
|
||||
writer = ExcelDataWriter() # 初始化ip_records 表格
|
||||
used_ip = writer.get_unavailable_ips(broker, account_name)
|
||||
while get_ip_times < 3:
|
||||
while get_ip_times < 10:
|
||||
try:
|
||||
item = get_ip_data() # 获取动态IP
|
||||
if item['ip'] in used_ip:
|
||||
get_ip_times += 1
|
||||
self.logger.warning(f'代理IP重复,重新获取IP')
|
||||
else:
|
||||
self.log.info(f'代理IP已经获取{item}')
|
||||
self.logger.info(f'代理IP已经获取{item}')
|
||||
break
|
||||
except Exception as e:
|
||||
self.log.error(f'获取IP失败,请检查网络连接{e}')
|
||||
self.logger.error(f'获取IP失败,请检查网络连接{e}')
|
||||
time.sleep(5)
|
||||
# raise ConnectionError(f"获取IP失败,请检查网络连接。错误详情: {e}")
|
||||
|
||||
# 设置全局代理
|
||||
proxy_ip = item['ip']
|
||||
proxy_port = item['port']
|
||||
set_global_proxy(proxy_ip, proxy_port, enable=True)
|
||||
set_proxy(proxy_ip, proxy_port)
|
||||
|
||||
# exit_ip = get_proxy_ip(proxy_ip,proxy_port)
|
||||
time_with_change_proxy = time.time() - start_time
|
||||
self.log.info('全局代理设置成功')
|
||||
self.logger.info('全局代理设置成功')
|
||||
|
||||
insert_data = {'as_of_date': datetime.datetime.fromtimestamp(start_time).strftime('%Y-%m-%d %H:%M:%S.%f'),
|
||||
'broker': broker,
|
||||
@ -171,17 +170,16 @@ class HLClientTrader:
|
||||
'ip_cross_check_result': '一致',
|
||||
'ip_switch_time': time_with_change_proxy,
|
||||
# 'ip_expire_time':item['expire']
|
||||
'ip_survival_time': '3min'
|
||||
'ip_survival_time': '5min'
|
||||
}
|
||||
# 写入数据表
|
||||
writer = ExcelDataWriter() # 初始化ip_records 表格
|
||||
writer.write_data(insert_data)
|
||||
|
||||
|
||||
time.sleep(2)
|
||||
#启动软件进程,输入账号密码
|
||||
self.log.info('Start login')
|
||||
self._app = pywinauto.Application().start(self.path)
|
||||
time.sleep(1)
|
||||
|
||||
while True:
|
||||
try:
|
||||
self._app.window(title_re='华龙证券网上交易.*').wait("ready")
|
||||
@ -220,10 +218,10 @@ class HLClientTrader:
|
||||
result_idcode = self.result_text()
|
||||
time.sleep(1)
|
||||
print('(((((((((',result_idcode)
|
||||
self.log.softInfo(result_idcode)
|
||||
self.logger.info(result_idcode)
|
||||
if '验证码' in result_idcode:
|
||||
# print('111')
|
||||
self.log.warn('Verification code error')
|
||||
self.logger.warning('Verification code error')
|
||||
self._app.window(title_re='华龙证券网上交易.*').window(control_id=0x458, class_name='Edit').click()
|
||||
time.sleep(0.5)
|
||||
else:
|
||||
@ -354,7 +352,7 @@ class HLClientTrader:
|
||||
one_text = self._app.window(control_id=0x0, class_name='#32770',found_index = 0).window(control_id=0x3EC, class_name='Static',found_index = 0).window_text()
|
||||
# print(one_text)
|
||||
# 摘取合同信息
|
||||
self.log.info(one_text.replace('/n', ' '))
|
||||
self.logger.info(one_text.replace('/n', ' '))
|
||||
time.sleep(0.2)
|
||||
#确认申购委托
|
||||
# self._app.window(control_id=0x0, class_name="#32770", found_index=0).window(control_id=0x2,class_name='Button').click()
|
||||
@ -395,7 +393,7 @@ class HLClientTrader:
|
||||
|
||||
#获取弹窗信息
|
||||
result = self._app.top_window().window(control_id=0x3EC, class_name='Static').window_text()
|
||||
self.log.info(result)
|
||||
self.logger.info(result)
|
||||
pywinauto.keyboard.send_keys("{ENTER}")
|
||||
time.sleep(0.2)
|
||||
pywinauto.keyboard.send_keys("{ESC}")
|
||||
@ -437,7 +435,8 @@ class HLClientTrader:
|
||||
self._copy_data()
|
||||
one_df =self._data_to_df()
|
||||
if len(one_df) == 0:
|
||||
pass
|
||||
self.logger.info('--------------------------------------无未成交委托--------------------------------------')
|
||||
return pd.DataFrame()
|
||||
else:
|
||||
one_df['证券代码'] = one_df['证券代码'].apply(lambda x: tranTicker(x.strip('=').strip('"')))
|
||||
return one_df
|
||||
@ -521,6 +520,11 @@ class HLClientTrader:
|
||||
lambda x: x.replace('"', '').replace('=', '') if isinstance(x, str) else x)
|
||||
position.columns = [i.replace('"', '').replace('=', '') for i in list(position.columns)]
|
||||
|
||||
# 检查是否有持仓数据
|
||||
if len(position) == 0 or position.empty:
|
||||
self.logger.info('--------------------------------------无当日持仓--------------------------------------')
|
||||
return pd.DataFrame()
|
||||
|
||||
position.rename(columns={'证券代码': "Ticker",
|
||||
'证券名称': "Ticker_name",
|
||||
"库存数量": "Number_transactions",
|
||||
@ -554,7 +558,12 @@ class HLClientTrader:
|
||||
self.left_wnd.select(['查询[F4]','当日委托'])
|
||||
self._copy_data()
|
||||
|
||||
return self._data_to_df()
|
||||
df = self._data_to_df()
|
||||
if len(df) == 0:
|
||||
self.logger.info('--------------------------------------无当日委托--------------------------------------')
|
||||
return pd.DataFrame()
|
||||
|
||||
return df
|
||||
|
||||
def get_today_trades(self):
|
||||
'''
|
||||
@ -578,6 +587,12 @@ class HLClientTrader:
|
||||
error_bad_lines=False).applymap(
|
||||
lambda x: x.replace('"', '').replace('=', '') if isinstance(x, str) else x)
|
||||
trades.columns = [i.replace('"', '').replace('=', '') for i in list(trades.columns)]
|
||||
|
||||
# 检查是否有成交数据
|
||||
if len(trades) == 0 or trades.empty:
|
||||
self.logger.info('--------------------------------------无当日成交--------------------------------------')
|
||||
return pd.DataFrame()
|
||||
|
||||
trades = trades[['成交时间', '证券代码', '证券名称', '买卖标志', '成交数量', '成交价格']]
|
||||
trades['Account_Name'] = self.account_name
|
||||
trades['As_Of_Date'] = datetime.date.today()
|
||||
@ -634,8 +649,8 @@ class HLClientTrader:
|
||||
one_text = self._app.window(control_id=0x0, class_name='#32770',found_index = 0).window_text()
|
||||
|
||||
if '委托价格的小数部分应该为2位' in one_text:
|
||||
# 点击“否”
|
||||
self.log.warn(one_text.replace('/n',' '))
|
||||
# 点击"否"
|
||||
self.logger.warning(one_text.replace('/n',' '))
|
||||
self._app.top_window().window(control_id=0x7, class_name='Button').click()
|
||||
# 保留两位小数截断
|
||||
price = str(price)[:-1]
|
||||
@ -649,7 +664,7 @@ class HLClientTrader:
|
||||
one_text = self._app.top_window().window(control_id=0x410, class_name='Static').window_text()
|
||||
else:
|
||||
# 摘取合同信息
|
||||
self.log.info(one_text.replace('/n',' '))
|
||||
self.logger.info(one_text.replace('/n',' '))
|
||||
time.sleep(0.2)
|
||||
|
||||
# 确认买入
|
||||
@ -660,12 +675,12 @@ class HLClientTrader:
|
||||
# # 摘取合同信息2
|
||||
# one_text2 = self._app['提示'].window(control_id=0x0, class_name='#32770').window_text()
|
||||
# print(one_text2)
|
||||
# self.log.info(one_text2.replace('/n', ' '))
|
||||
# self.logger.info(one_text2.replace('/n', ' '))
|
||||
# ImageGrab.grab(bbox=(859, 800, 1307, 836)).save(f'{root_path}/imgs/temp1231.png')
|
||||
#
|
||||
# image_path = f'{root_path}/imgs/temp1231.png'
|
||||
# text = ocr_image(image_path)
|
||||
# self.log.info(text.replace('/n', ' '))
|
||||
# self.logger.info(text.replace('/n', ' '))
|
||||
|
||||
# 确认合同
|
||||
pywinauto.keyboard.send_keys("{ENTER}")
|
||||
@ -694,9 +709,9 @@ class HLClientTrader:
|
||||
try:
|
||||
self._app.top_window().set_focus()
|
||||
result_idcode = self._app.top_window().window(control_id=0x966, class_name='Static').window_text()
|
||||
self.log.softInfo(result_idcode)
|
||||
self.logger.info(result_idcode)
|
||||
if '验证码错误' in result_idcode:
|
||||
self.log.warn('Verification code error')
|
||||
self.logger.warning('Verification code error')
|
||||
self._app.top_window().window(control_id=0x2, class_name="Button").click()
|
||||
time.sleep(0.5)
|
||||
else:
|
||||
|
Binary file not shown.
Binary file not shown.
@ -7,4 +7,4 @@ Gzip=0
|
||||
WndName=Ths_UserBehavior_test
|
||||
acct_bind=085006032667|073000003859|080000027181|073000004902|073000004916|073000003698|073000004092|073000003868|073000003921|073000004065|073000003769|073000004318|073000003702|085006040636|073000004495|073000004116|
|
||||
device_bind=1
|
||||
Xiadan_UB_test=125-5-19
|
||||
Xiadan_UB_test=125-5-23
|
||||
|
@ -35,7 +35,7 @@
|
||||
52243433=2024-4-10
|
||||
52243828=2024-2-7
|
||||
52244086=2024-3-12
|
||||
52243961=2025-6-6
|
||||
52243961=2025-6-20
|
||||
52260726=2023-9-15
|
||||
54354761=2023-10-10
|
||||
52260860=2023-5-15
|
||||
|
@ -53,3 +53,32 @@
|
||||
[2025-06-19 17:57:14:240][0x000409B2] 自动重连未开启
|
||||
[2025-06-19 18:04:54:474][0x000E0946] 系统断线
|
||||
[2025-06-19 18:04:54:477][0x000E0946] 自动重连未开启
|
||||
[2025-06-20 16:34:45:165][0x00040E3A] 系统断线
|
||||
[2025-06-20 16:34:45:167][0x00040E3A] 自动重连未开启
|
||||
[2025-06-20 16:44:09:331][0x00080D58] 系统断线
|
||||
[2025-06-20 16:44:09:333][0x00080D58] 自动重连未开启
|
||||
[2025-06-20 16:55:02:515][0x000600A2] 系统断线
|
||||
[2025-06-20 16:55:02:515][0x000600A2] 自动重连未开启
|
||||
[2025-06-20 17:10:00:532][0x00120436] 系统断线
|
||||
[2025-06-20 17:10:00:535][0x00120436] 自动重连未开启
|
||||
[2025-06-20 17:20:11:356][0x001002FA] 系统断线
|
||||
[2025-06-20 17:20:11:359][0x001002FA] 自动重连未开启
|
||||
[2025-06-20 17:22:46:838][0x00170F7C] 系统断线
|
||||
[2025-06-20 17:22:46:843][0x00170F7C] 自动重连未开启
|
||||
[2025-06-20 17:31:15:664][0x00270A06] 系统断线
|
||||
[2025-06-20 17:31:15:668][0x00270A06] 自动重连未开启
|
||||
[2025-06-20 17:34:22:188][0x001506CA] 系统断线
|
||||
[2025-06-20 17:34:22:191][0x001506CA] 自动重连未开启
|
||||
[2025-06-20 18:02:21:639][0x00330720] 系统断线
|
||||
[2025-06-20 18:02:21:641][0x00330720] 自动重连未开启
|
||||
[2025-06-20 18:25:09:878][0x000C0516] 系统断线
|
||||
[2025-06-20 18:25:09:882][0x000C0516] 自动重连未开启
|
||||
[2025-06-20 18:31:39:710][0x00090BA4] 系统断线
|
||||
[2025-06-20 18:31:39:712][0x00090BA4] 自动重连未开启
|
||||
[2025-06-23 11:17:50:024][0x001B1188] 系统断线
|
||||
[2025-06-23 11:17:50:040][0x001B1188] 自动重连未开启
|
||||
[2025-06-23 11:22:10:885][0x001C1188] 系统断线
|
||||
[2025-06-23 14:52:07:516][0x000F0908] 系统断线
|
||||
[2025-06-23 14:52:07:516][0x000F0908] 自动重连未开启
|
||||
[2025-06-23 15:03:23:604][0x00081870] 系统断线
|
||||
[2025-06-23 15:03:23:604][0x00081870] 自动重连未开启
|
||||
|
Binary file not shown.
@ -89,6 +89,7 @@ WT_FLOATCACHE_24CFF3CF218A73AF5B8E03E92AF583D6=294tem0S2k==
|
||||
WT_FLOATCACHE_455F8DD9A874134E00B9194AFCCABAB8=294tem0S2k==
|
||||
WT_FLOATCACHE_55771B174AC04E1CF16DA528C8F81948=294tem0S2k==
|
||||
WT_FLOATCACHE_A316D7EB89C9C6D7D0DF5EAAEA184C87=294tem0S2k==
|
||||
WT_FLOATCACHE_A7746BCB2D0919A6926DA76998D1F065=294tem0S2k==
|
||||
WT_FLOATCACHE_C0C62A1620BA88BB7B2462A5CEC22A04=294tem0S2k==
|
||||
WT_FONTSIZE=0
|
||||
WT_HEIGHT=764
|
||||
@ -97,13 +98,13 @@ WT_INVALIDPWD_LIMIT=0
|
||||
WT_LEFTWIDTH=229
|
||||
WT_LINKFAST=0
|
||||
WT_MASKACCOUNT=0
|
||||
WT_MINSIZEX=-1
|
||||
WT_MINSIZEY=-1
|
||||
WT_MINSIZEX=1
|
||||
WT_MINSIZEY=999
|
||||
WT_MODE_GPYK=0
|
||||
WT_NEWLI_MNLEFT=0
|
||||
WT_NEWLI_MNTOP=0
|
||||
WT_POSITION_LEFT=26
|
||||
WT_POSITION_TOP=26
|
||||
WT_POSITION_LEFT=78
|
||||
WT_POSITION_TOP=78
|
||||
WT_SAVEACCOUNT=0
|
||||
WT_SOUND_ALARM=1
|
||||
WT_TONGXUN=0
|
||||
|
@ -1,3 +1,4 @@
|
||||
DATE=20141016
|
||||
|
||||
[CHANGE_TIP]
|
||||
GUI_CHEDAN_CONFIRM=27;no;您取消了撤单前确认提示功能。|您确定理解该项设置的用法,并愿意承担误操作的风险吗?
|
||||
@ -202,7 +203,7 @@ JJ_UNABLEKKZQ=1
|
||||
NEED_APPROPRIATENESS_MANAGE=161
|
||||
TJD_STAGGING_CD_TIP=<font size=16>\n撤销后该笔条件单将失效并被删除。\n确定撤销本条件单?\n</font>
|
||||
WT_2016_NOTSEND_RZRQ_CX_RQFZDDMX=1
|
||||
WT_3MASK=50*;2*;51*;58*;03*;18:9*;42*;56*;706080;009*;01*;02*;09*;100*;101*;102*;103*;104*;105*;106*;107*;108*;109*;11*;12*;131*;130*;133*;134*;135*;136*;137*;138*;139*;14*;15*;16*;17*;18*;19*;404*;81*;821*;35:5*;
|
||||
WT_3MASK=50*;2*;51*;58*;52*;03*;18:9*;42*;56*;706080;009*;01*;02*;09*;100*;101*;102*;103*;104*;105*;106*;107*;108*;109*;11*;12*;131*;130*;133*;134*;135*;136*;137*;138*;139*;14*;15*;16*;17*;18*;19*;404*;81*;821*;35:5*;
|
||||
WT_449_RQFZRZFZ_SUP_CHECK=0
|
||||
WT_450_RQFZRZFZ_SUP_CHECK=1
|
||||
WT_452_RQFZRZFZ_SUP_CHECK=1
|
||||
@ -241,6 +242,7 @@ WT_DEFAULT_RZRQ_CHECK=1
|
||||
WT_DISPUNITMASK=1000:780*
|
||||
WT_DOCKHEIGHT=265
|
||||
WT_DOCKRIGHT=0
|
||||
WT_DOCKWIDTH=
|
||||
WT_DOWNDEPT=1
|
||||
WT_DPI=1
|
||||
WT_DZDMODE=0
|
||||
@ -267,9 +269,9 @@ WT_KSWTDEFAULTID=1574
|
||||
WT_LASTATYPE=48
|
||||
WT_LASTCRYPTID=1110
|
||||
WT_LASTLOGINTYPE=0
|
||||
WT_LASTNOTIDATE=20250619
|
||||
WT_LASTNOTIDATE=20250623
|
||||
WT_LASTNOTIID=578273CEA86FD408CF2FC56271B2C09B
|
||||
WT_LASTREQ_XGSGPKG_DATE=20250619
|
||||
WT_LASTREQ_XGSGPKG_DATE=20250623
|
||||
WT_LEFTWIDTH=229
|
||||
WT_LIMITINVALIDPWD=0
|
||||
WT_LINKFAST=0
|
||||
@ -279,8 +281,8 @@ WT_MAICHU_PLCL=1
|
||||
WT_MAIRU_PLCL=0
|
||||
WT_MASKACCOUNT=0
|
||||
WT_MINIWTNEW=0
|
||||
WT_MINSIZEX=-1
|
||||
WT_MINSIZEY=-1
|
||||
WT_MINSIZEX=1
|
||||
WT_MINSIZEY=999
|
||||
WT_MODE_GPYK=0
|
||||
WT_NEWLI_MNLEFT=0
|
||||
WT_NEWLI_MNTOP=0
|
||||
@ -291,10 +293,11 @@ WT_NO_ZZDETAIL=1
|
||||
WT_ONLINEMODE=1
|
||||
WT_OTC_YXMR_FXXYS=1
|
||||
WT_POSITION=4
|
||||
WT_POSITION_LEFT=26
|
||||
WT_POSITION_TOP=26
|
||||
WT_POSITION_LEFT=78
|
||||
WT_POSITION_TOP=78
|
||||
WT_PROPERTY_WIDTH=204
|
||||
WT_PTDLRZRQCHECK=0
|
||||
WT_QQ_NEWQUICKWTMODE=
|
||||
WT_QUERYREFRESH=0
|
||||
WT_REFRESHTIME=0
|
||||
WT_RZRQSAVEACCOUNT=0
|
||||
@ -309,6 +312,7 @@ WT_SHOWBINDINFO=2
|
||||
WT_SHOWPINCERTQUESTION=首次使用SSL加密方式登录,或更换登录设备的用户,需要先设置证书密码。请点击(?)按钮查看具体操作说明。
|
||||
WT_SHOWPINCERTQUESTION_URL=0|http://jrzd.dwstock.com:8066/policy/index.html?code=guomi
|
||||
WT_SHOWPWDPROMPT=1
|
||||
WT_SIMPLEMODE=
|
||||
WT_SOUND_ALARM=1
|
||||
WT_SPEEDTEST_TIMEOUT=1000
|
||||
WT_STAGGING_TIMELIMIT=09:30|14:40
|
||||
@ -322,7 +326,7 @@ WT_TJD_STAGGING_TIP4=
|
||||
WT_TONGXUN=0
|
||||
WT_UPGRADEADDR=
|
||||
WT_UPGRADEPORT=0
|
||||
WT_UPGRADEURL=http://xiucai-client.oss-cn-shanghai.aliyuncs.com/xiadan.exe
|
||||
WT_UPGRADEURL=
|
||||
WT_USESPRITE=0
|
||||
WT_WIDTH=1494
|
||||
WT_XDATA_ACCOUNT_ENCODE=1
|
||||
@ -333,7 +337,7 @@ WT_YYBIDS=0100|ʨɽ·Ӫҵ
|
||||
WT_ZCSX_ENABLE=1
|
||||
WT_ZCSX_INTERVAL=1000
|
||||
WT_ZCSX_WT_INTERVAL=10
|
||||
WT_ZHANGMASK=11*;12*;13*;10*;181*;12*;0707*;35:10*;35:11*;35:12*;35:13*;35:143*;35:144*;35:146*;35:149*;35:19*;19:009*;19:01*;19:02*;19:09*;19:101*;19:102*;19:103*;19:104*;19:105*;19:106*;19:107*;19:108*;19:12*;19:13*;19:14*;19:15*;19:16*;19:17*;19:18*;19:19*;19:2*;404*;81*;
|
||||
WT_ZHANGMASK=11*;12*;13*;10*;181*;12*;0707*;35:10*;35:11*;35:12*;35:13*;35:143*;35:144*;35:146*;35:149*;35:19*;19:009*;19:01*;19:02*;19:09*;19:101*;19:102*;19:103*;19:104*;19:105*;19:106*;19:107*;19:108*;19:12*;19:13*;19:14*;19:15*;19:16*;19:17*;19:18*;19:19*;19:2*;404*;81*;821*;35:5*;
|
||||
WT_ZJHQ_FILTERBYZQDM=1
|
||||
WT_ZXHQCHANGELSH_UPDATEYHSL=1
|
||||
WT_ZXHQDQHY_LISTCHECK=1
|
||||
@ -430,6 +434,7 @@ WT_FLOATCACHE_24CFF3CF218A73AF5B8E03E92AF583D6=294tem0S2k==
|
||||
WT_FLOATCACHE_455F8DD9A874134E00B9194AFCCABAB8=294tem0S2k==
|
||||
WT_FLOATCACHE_55771B174AC04E1CF16DA528C8F81948=294tem0S2k==
|
||||
WT_FLOATCACHE_A316D7EB89C9C6D7D0DF5EAAEA184C87=294tem0S2k==
|
||||
WT_FLOATCACHE_A7746BCB2D0919A6926DA76998D1F065=294tem0S2k==
|
||||
WT_FLOATCACHE_C0C62A1620BA88BB7B2462A5CEC22A04=294tem0S2k==
|
||||
WT_FONTSIZE=0
|
||||
WT_HEIGHT=764
|
||||
@ -438,13 +443,13 @@ WT_INVALIDPWD_LIMIT=0
|
||||
WT_LEFTWIDTH=229
|
||||
WT_LINKFAST=0
|
||||
WT_MASKACCOUNT=0
|
||||
WT_MINSIZEX=-1
|
||||
WT_MINSIZEY=-1
|
||||
WT_MINSIZEX=1
|
||||
WT_MINSIZEY=999
|
||||
WT_MODE_GPYK=0
|
||||
WT_NEWLI_MNLEFT=0
|
||||
WT_NEWLI_MNTOP=0
|
||||
WT_POSITION_LEFT=26
|
||||
WT_POSITION_TOP=26
|
||||
WT_POSITION_LEFT=78
|
||||
WT_POSITION_TOP=78
|
||||
WT_SAVEACCOUNT=0
|
||||
WT_SOUND_ALARM=1
|
||||
WT_TONGXUN=0
|
||||
@ -458,7 +463,8 @@ USERBEHAVIOR=1
|
||||
WNDNAME=Ths_UserBehavior_test
|
||||
|
||||
[WT_SERVER]
|
||||
TCP/IP_ACCOUNTTYPE0=
|
||||
LASTUPDATE=20141016
|
||||
TCP/IP_ACCOUNTTYPE6=
|
||||
TCP/IP_ADDRESS0=wtssl.dwstock.com
|
||||
TCP/IP_ADDRESS1=58.240.173.150
|
||||
TCP/IP_ADDRESS2=114.94.49.59
|
||||
@ -487,7 +493,7 @@ TCP/IP_CRYPTPROTOCOL3=SSL
|
||||
TCP/IP_CRYPTPROTOCOL4=SSL
|
||||
TCP/IP_CRYPTPROTOCOL5=SSL
|
||||
TCP/IP_CRYPTPROTOCOL6=SSL
|
||||
TCP/IP_CUR_SERVER=0
|
||||
TCP/IP_CUR_SERVER=6
|
||||
TCP/IP_DEPTID0=0100
|
||||
TCP/IP_DEPTID1=0100
|
||||
TCP/IP_DEPTID2=0100
|
||||
@ -495,7 +501,7 @@ TCP/IP_DEPTID3=0100
|
||||
TCP/IP_DEPTID4=0100
|
||||
TCP/IP_DEPTID5=0100
|
||||
TCP/IP_DEPTID6=0100
|
||||
TCP/IP_DEPTLIST0=
|
||||
TCP/IP_DEPTLIST6=
|
||||
TCP/IP_DEPTNAME0=狮山路营业部
|
||||
TCP/IP_DEPTNAME1=狮山路营业部
|
||||
TCP/IP_DEPTNAME10=狮山路营业部
|
||||
@ -559,7 +565,7 @@ TCP/IP_POWER9=0
|
||||
TCP/IP_PROXYPORT=0
|
||||
TCP/IP_PROXYTYPE=0
|
||||
TCP/IP_SERVER_NUM=7
|
||||
TCP/IP_SITEID0=
|
||||
TCP/IP_SITEID6=
|
||||
TCP/IP_SSLCERT_PORT0=2235
|
||||
TCP/IP_SSLCERT_PORT1=2235
|
||||
TCP/IP_SSLCERT_PORT10=2235
|
||||
@ -597,7 +603,7 @@ TCP/IP_USEPROXY=0
|
||||
USEDIAL=0
|
||||
|
||||
[东吴证券电信入口二]
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=222.92.132.238:8009|58.211.31.245:8009|#HH:1
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=58.211.31.245:18002|#H:1
|
||||
|
||||
[东吴证券电信入口三]
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=222.92.132.238:8002|58.211.31.245:8002|222.92.150.138:8002|58.211.94.45:8002|#HHHH:1
|
||||
@ -612,13 +618,13 @@ TCP/IP_DYNAMICADDRESSWT_SERVER=58.211.94.45:8002|222.92.150.138:8002|222.92.132.
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=61.132.116.211:8002|58.211.94.45:8002|221.6.67.124:8002|58.211.31.245:8002|222.92.132.238:8002|#HHHH:1
|
||||
|
||||
[东吴证券网通入口二]
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=222.92.132.238:8009|58.211.31.245:8009|#HH:1
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=58.211.94.45:8002|222.92.150.138:8002|222.92.132.238:8002|58.211.31.245:8002|#HHHH:1
|
||||
|
||||
[东吴证券网通入口一]
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=222.92.132.238:8002|58.211.31.245:8002|222.92.150.138:8002|58.211.94.45:8002|#HHHH:1
|
||||
|
||||
[东吴证券移动入口一]
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=58.211.94.45:8002|222.92.150.138:8002|222.92.132.238:8002|58.211.31.245:8002|#HHHH:1
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=58.211.94.45:8008|222.92.150.138:8002|#HH:1
|
||||
|
||||
[东吴证券总交易入口]
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=222.92.132.238:8009|58.211.31.245:8009|#HH:1
|
||||
|
@ -1,3 +1,4 @@
|
||||
DATE=20141016
|
||||
|
||||
[CHANGE_TIP]
|
||||
GUI_CHEDAN_CONFIRM=27;no;您取消了撤单前确认提示功能。|您确定理解该项设置的用法,并愿意承担误操作的风险吗?
|
||||
@ -267,9 +268,9 @@ WT_KSWTDEFAULTID=1574
|
||||
WT_LASTATYPE=48
|
||||
WT_LASTCRYPTID=1110
|
||||
WT_LASTLOGINTYPE=0
|
||||
WT_LASTNOTIDATE=20250619
|
||||
WT_LASTNOTIDATE=20250623
|
||||
WT_LASTNOTIID=578273CEA86FD408CF2FC56271B2C09B
|
||||
WT_LASTREQ_XGSGPKG_DATE=20250619
|
||||
WT_LASTREQ_XGSGPKG_DATE=20250623
|
||||
WT_LEFTWIDTH=229
|
||||
WT_LIMITINVALIDPWD=0
|
||||
WT_LINKFAST=0
|
||||
@ -279,8 +280,8 @@ WT_MAICHU_PLCL=1
|
||||
WT_MAIRU_PLCL=0
|
||||
WT_MASKACCOUNT=0
|
||||
WT_MINIWTNEW=0
|
||||
WT_MINSIZEX=-1
|
||||
WT_MINSIZEY=-1
|
||||
WT_MINSIZEX=1
|
||||
WT_MINSIZEY=999
|
||||
WT_MODE_GPYK=0
|
||||
WT_NEWLI_MNLEFT=0
|
||||
WT_NEWLI_MNTOP=0
|
||||
@ -291,8 +292,8 @@ WT_NO_ZZDETAIL=1
|
||||
WT_ONLINEMODE=1
|
||||
WT_OTC_YXMR_FXXYS=1
|
||||
WT_POSITION=4
|
||||
WT_POSITION_LEFT=26
|
||||
WT_POSITION_TOP=26
|
||||
WT_POSITION_LEFT=78
|
||||
WT_POSITION_TOP=78
|
||||
WT_PROPERTY_WIDTH=204
|
||||
WT_PTDLRZRQCHECK=0
|
||||
WT_QUERYREFRESH=0
|
||||
@ -429,6 +430,7 @@ WT_FLOATCACHE_24CFF3CF218A73AF5B8E03E92AF583D6=294tem0S2k==
|
||||
WT_FLOATCACHE_455F8DD9A874134E00B9194AFCCABAB8=294tem0S2k==
|
||||
WT_FLOATCACHE_55771B174AC04E1CF16DA528C8F81948=294tem0S2k==
|
||||
WT_FLOATCACHE_A316D7EB89C9C6D7D0DF5EAAEA184C87=294tem0S2k==
|
||||
WT_FLOATCACHE_A7746BCB2D0919A6926DA76998D1F065=294tem0S2k==
|
||||
WT_FLOATCACHE_C0C62A1620BA88BB7B2462A5CEC22A04=294tem0S2k==
|
||||
WT_FONTSIZE=0
|
||||
WT_HEIGHT=764
|
||||
@ -437,13 +439,13 @@ WT_INVALIDPWD_LIMIT=0
|
||||
WT_LEFTWIDTH=229
|
||||
WT_LINKFAST=0
|
||||
WT_MASKACCOUNT=0
|
||||
WT_MINSIZEX=-1
|
||||
WT_MINSIZEY=-1
|
||||
WT_MINSIZEX=1
|
||||
WT_MINSIZEY=999
|
||||
WT_MODE_GPYK=0
|
||||
WT_NEWLI_MNLEFT=0
|
||||
WT_NEWLI_MNTOP=0
|
||||
WT_POSITION_LEFT=26
|
||||
WT_POSITION_TOP=26
|
||||
WT_POSITION_LEFT=78
|
||||
WT_POSITION_TOP=78
|
||||
WT_SAVEACCOUNT=0
|
||||
WT_SOUND_ALARM=1
|
||||
WT_TONGXUN=0
|
||||
@ -457,6 +459,7 @@ USERBEHAVIOR=1
|
||||
WNDNAME=Ths_UserBehavior_test
|
||||
|
||||
[WT_SERVER]
|
||||
LASTUPDATE=20141016
|
||||
TCP/IP_ADDRESS0=wtssl.dwstock.com
|
||||
TCP/IP_ADDRESS1=58.240.173.150
|
||||
TCP/IP_ADDRESS2=114.94.49.59
|
||||
@ -485,7 +488,7 @@ TCP/IP_CRYPTPROTOCOL3=SSL
|
||||
TCP/IP_CRYPTPROTOCOL4=SSL
|
||||
TCP/IP_CRYPTPROTOCOL5=SSL
|
||||
TCP/IP_CRYPTPROTOCOL6=SSL
|
||||
TCP/IP_CUR_SERVER=0
|
||||
TCP/IP_CUR_SERVER=6
|
||||
TCP/IP_DEPTID0=0100
|
||||
TCP/IP_DEPTID1=0100
|
||||
TCP/IP_DEPTID2=0100
|
||||
@ -593,7 +596,7 @@ TCP/IP_USEPROXY=0
|
||||
USEDIAL=0
|
||||
|
||||
[东吴证券电信入口二]
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=222.92.132.238:8009|58.211.31.245:8009|#HH:1
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=58.211.31.245:18002|#H:1
|
||||
|
||||
[东吴证券电信入口三]
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=222.92.132.238:8002|58.211.31.245:8002|222.92.150.138:8002|58.211.94.45:8002|#HHHH:1
|
||||
@ -608,16 +611,16 @@ TCP/IP_DYNAMICADDRESSWT_SERVER=58.211.94.45:8002|222.92.150.138:8002|222.92.132.
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=61.132.116.211:8002|58.211.94.45:8002|221.6.67.124:8002|58.211.31.245:8002|222.92.132.238:8002|#HHHH:1
|
||||
|
||||
[东吴证券网通入口二]
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=222.92.132.238:8009|58.211.31.245:8009|#HH:1
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=58.211.94.45:8002|222.92.150.138:8002|222.92.132.238:8002|58.211.31.245:8002|#HHHH:1
|
||||
|
||||
[东吴证券网通入口一]
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=222.92.132.238:8002|58.211.31.245:8002|222.92.150.138:8002|58.211.94.45:8002|#HHHH:1
|
||||
|
||||
[东吴证券移动入口一]
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=58.211.94.45:8002|222.92.150.138:8002|222.92.132.238:8002|58.211.31.245:8002|#HHHH:1
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=58.211.94.45:8008|222.92.150.138:8002|#HH:1
|
||||
|
||||
[东吴证券总交易入口]
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=222.92.132.238:8002|58.211.31.245:8002|222.92.150.138:8002|58.211.94.45:8002|#HHHH:1
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=222.92.132.238:8009|58.211.31.245:8009|#HH:1
|
||||
|
||||
[东吴证券总入口]
|
||||
TCP/IP_DYNAMICADDRESSWT_SERVER=222.92.132.238:8002|222.92.150.138:8002|#HH:1
|
||||
|
File diff suppressed because it is too large
Load Diff
BIN
imgs/temp123.png
BIN
imgs/temp123.png
Binary file not shown.
Before Width: | Height: | Size: 832 B After Width: | Height: | Size: 791 B |
Binary file not shown.
Before Width: | Height: | Size: 907 B After Width: | Height: | Size: 951 B |
@ -1,22 +0,0 @@
|
||||
# 此脚本调试时非常常用,不可删除
|
||||
import winreg
|
||||
import ctypes
|
||||
|
||||
def reset_proxy_to_default():
|
||||
"""恢复系统代理为默认(关闭)"""
|
||||
key = winreg.OpenKey(
|
||||
winreg.HKEY_CURRENT_USER,
|
||||
r"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings",
|
||||
0, winreg.KEY_WRITE
|
||||
)
|
||||
try:
|
||||
winreg.SetValueEx(key, "ProxyEnable", 0, winreg.REG_DWORD, 0)
|
||||
winreg.SetValueEx(key, "ProxyServer", 0, winreg.REG_SZ, "")
|
||||
winreg.SetValueEx(key, "ProxyOverride", 0, winreg.REG_SZ, "<local>")
|
||||
finally:
|
||||
winreg.CloseKey(key)
|
||||
internet_set_option = ctypes.windll.Wininet.InternetSetOptionW
|
||||
internet_set_option(0, 37, 0, 0)
|
||||
internet_set_option(0, 39, 0, 0)
|
||||
|
||||
reset_proxy_to_default()
|
69
logs/13401019175.log
Normal file
69
logs/13401019175.log
Normal file
@ -0,0 +1,69 @@
|
||||
[2025-06-20 16:32:31] [INFO] Start login
|
||||
[2025-06-20 16:32:49] [INFO] 代理IP已经获取{'ip': '180.120.6.234', 'port': 40027, 'prov': '江苏', 'city': '南通', 'isp': '电信', 'expire': '2025-06-20 16:37:51'}
|
||||
[2025-06-20 16:32:51] [INFO] 全局代理设置成功
|
||||
[2025-06-20 16:33:57] [INFO] Start login
|
||||
[2025-06-20 16:34:13] [INFO] 代理IP已经获取{'ip': '121.226.92.111', 'port': 40041, 'prov': '江苏', 'city': '南通', 'isp': '电信', 'expire': '2025-06-20 16:39:15'}
|
||||
[2025-06-20 16:34:14] [INFO] 全局代理设置成功
|
||||
[2025-06-20 16:37:37] [INFO] Start login
|
||||
[2025-06-20 16:37:54] [INFO] 代理IP已经获取{'ip': '110.90.14.178', 'port': 40001, 'prov': '福建', 'city': '福州', 'isp': '电信', 'expire': '2025-06-20 16:42:56'}
|
||||
[2025-06-20 16:37:55] [INFO] 全局代理设置成功
|
||||
[2025-06-20 16:51:33] [INFO] Start login
|
||||
[2025-06-20 16:51:51] [INFO] 代理IP已经获取{'ip': '121.225.78.72', 'port': 40033, 'prov': '江苏', 'city': '南京', 'isp': '电信', 'expire': '2025-06-20 16:56:53'}
|
||||
[2025-06-20 16:51:53] [INFO] 全局代理设置成功
|
||||
[2025-06-20 16:54:01] [WARNING] There are running programs, and there are processes in retreat
|
||||
[2025-06-20 16:54:01] [INFO] Start login
|
||||
[2025-06-20 16:54:18] [INFO] 代理IP已经获取{'ip': '114.225.124.157', 'port': 40013, 'prov': '江苏', 'city': '无锡', 'isp': '电信', 'expire': '2025-06-20 16:59:20'}
|
||||
[2025-06-20 16:54:19] [INFO] 全局代理设置成功
|
||||
[2025-06-20 16:55:51] [INFO] Start login
|
||||
[2025-06-20 16:56:09] [INFO] 代理IP已经获取{'ip': '117.86.187.5', 'port': 40012, 'prov': '江苏', 'city': '南通', 'isp': '电信', 'expire': '2025-06-20 17:01:11'}
|
||||
[2025-06-20 16:56:10] [INFO] 全局代理设置成功
|
||||
[2025-06-20 16:59:15] [WARNING] There are running programs, and there are processes in retreat
|
||||
[2025-06-20 16:59:15] [INFO] Start login
|
||||
[2025-06-20 16:59:33] [INFO] 代理IP已经获取{'ip': '115.239.71.5', 'port': 40015, 'prov': '浙江', 'city': '嘉兴', 'isp': '电信', 'expire': '2025-06-20 17:04:35'}
|
||||
[2025-06-20 16:59:34] [INFO] 全局代理设置成功
|
||||
[2025-06-20 17:01:40] [WARNING] There are running programs, and there are processes in retreat
|
||||
[2025-06-20 17:01:40] [INFO] Start login
|
||||
[2025-06-20 17:01:58] [INFO] 代理IP已经获取{'ip': '120.41.89.137', 'port': 40005, 'prov': '福建', 'city': '厦门', 'isp': '电信', 'expire': '2025-06-20 17:07:00'}
|
||||
[2025-06-20 17:01:59] [INFO] 全局代理设置成功
|
||||
[2025-06-20 17:03:41] [WARNING] There are running programs, and there are processes in retreat
|
||||
[2025-06-20 17:03:41] [INFO] Start login
|
||||
[2025-06-20 17:03:58] [INFO] 代理IP已经获取{'ip': '49.88.138.165', 'port': 40032, 'prov': '江苏', 'city': '连云港', 'isp': '电信', 'expire': '2025-06-20 17:09:00'}
|
||||
[2025-06-20 17:03:59] [INFO] 全局代理设置成功
|
||||
[2025-06-20 17:16:00] [INFO] Start login
|
||||
[2025-06-20 17:16:22] [INFO] 代理IP已经获取{'ip': '113.242.237.157', 'port': 40018, 'prov': '湖南', 'city': '益阳', 'isp': '电信', 'expire': '2025-06-20 17:21:24'}
|
||||
[2025-06-20 17:16:24] [INFO] 全局代理设置成功
|
||||
[2025-06-20 17:18:33] [WARNING] There are running programs, and there are processes in retreat
|
||||
[2025-06-20 17:18:33] [INFO] Start login
|
||||
[2025-06-20 17:18:52] [INFO] 代理IP已经获取{'ip': '49.70.97.222', 'port': 40050, 'prov': '江苏', 'city': '宿迁', 'isp': '电信', 'expire': '2025-06-20 17:23:54'}
|
||||
[2025-06-20 17:18:53] [INFO] 全局代理设置成功
|
||||
[2025-06-20 17:20:18] [INFO] Start login
|
||||
[2025-06-20 17:20:37] [INFO] 代理IP已经获取{'ip': '119.132.114.109', 'port': 40006, 'prov': '广东', 'city': '珠海', 'isp': '电信', 'expire': '2025-06-20 17:25:39'}
|
||||
[2025-06-20 17:20:39] [INFO] 全局代理设置成功
|
||||
[2025-06-20 17:23:10] [INFO] Start login
|
||||
[2025-06-20 17:23:30] [INFO] 代理IP已经获取{'ip': '121.61.195.41', 'port': 40030, 'prov': '湖北', 'city': '荆门', 'isp': '电信', 'expire': '2025-06-20 17:28:33'}
|
||||
[2025-06-20 17:23:32] [INFO] 全局代理设置成功
|
||||
[2025-06-20 17:31:57] [INFO] Start login
|
||||
[2025-06-20 17:32:19] [INFO] 代理IP已经获取{'ip': '110.184.178.94', 'port': 40013, 'prov': '四川', 'city': '成都', 'isp': '电信', 'expire': '2025-06-20 17:37:22'}
|
||||
[2025-06-20 17:32:21] [INFO] 全局代理设置成功
|
||||
[2025-06-20 18:00:20] [INFO] Start login
|
||||
[2025-06-20 18:00:39] [INFO] 代理IP已经获取{'ip': '117.26.131.222', 'port': 40032, 'prov': '福建', 'city': '宁德', 'isp': '电信', 'expire': '2025-06-20 18:05:41'}
|
||||
[2025-06-20 18:00:41] [INFO] 全局代理设置成功
|
||||
[2025-06-20 18:10:32] [INFO] Start login
|
||||
[2025-06-20 18:10:53] [INFO] 代理IP已经获取{'ip': '49.67.191.218', 'port': 40016, 'prov': '江苏', 'city': '南通', 'isp': '电信', 'expire': '2025-06-20 18:15:55'}
|
||||
[2025-06-20 18:10:54] [INFO] 全局代理设置成功
|
||||
[2025-06-20 18:27:31] [INFO] Start login
|
||||
[2025-06-20 18:27:50] [INFO] 代理IP已经获取{'ip': '27.156.199.206', 'port': 40010, 'prov': '福建', 'city': '宁德', 'isp': '电信', 'expire': '2025-06-20 18:32:52'}
|
||||
[2025-06-20 18:27:51] [INFO] 全局代理设置成功
|
||||
[2025-06-23 11:17:20] [INFO] Start login
|
||||
[2025-06-23 11:17:32] [INFO] 代理IP已经获取{'ip': '49.69.44.205', 'port': 40029, 'prov': '江苏', 'city': '盐城', 'isp': '电信', 'expire': '2025-06-23 11:22:33'}
|
||||
[2025-06-23 11:17:32] [INFO] 全局代理设置成功
|
||||
[2025-06-23 11:21:52] [INFO] Start login
|
||||
[2025-06-23 11:22:02] [INFO] 代理IP已经获取{'ip': '121.235.17.23', 'port': 40050, 'prov': '江苏', 'city': '无锡', 'isp': '电信', 'expire': '2025-06-23 11:27:03'}
|
||||
[2025-06-23 11:22:02] [INFO] 全局代理设置成功
|
||||
[2025-06-23 13:42:01] [INFO] Start login
|
||||
[2025-06-23 14:51:24] [INFO] Start login
|
||||
[2025-06-23 14:51:41] [INFO] 代理IP已经获取{'ip': '111.224.75.104', 'port': 40012, 'prov': '河北', 'city': '石家庄', 'isp': '电信', 'expire': '2025-06-23 14:56:42'}
|
||||
[2025-06-23 14:51:42] [INFO] 全局代理设置成功
|
||||
[2025-06-23 15:02:25] [INFO] Start login
|
||||
[2025-06-23 15:02:44] [INFO] 代理IP已经获取{'ip': '121.230.8.13', 'port': 40029, 'prov': '江苏', 'city': '泰州', 'isp': '电信', 'expire': '2025-06-23 15:07:44'}
|
||||
[2025-06-23 15:02:45] [INFO] 全局代理设置成功
|
23
logs/13593501968.log
Normal file
23
logs/13593501968.log
Normal file
@ -0,0 +1,23 @@
|
||||
[2025-06-23 14:47:48] [INFO] Start login
|
||||
[2025-06-23 14:48:51] [INFO] Start login
|
||||
[2025-06-23 14:49:06] [INFO] 代理IP已经获取{'ip': '223.247.41.128', 'port': 40003, 'prov': '安徽', 'city': '池州', 'isp': '电信', 'expire': '2025-06-23 14:54:06'}
|
||||
[2025-06-23 14:49:07] [INFO] 全局代理设置成功
|
||||
[2025-06-23 14:49:53] [INFO] Start login
|
||||
[2025-06-23 14:50:06] [INFO] 代理IP已经获取{'ip': '115.199.227.55', 'port': 40004, 'prov': '浙江', 'city': '杭州', 'isp': '电信', 'expire': '2025-06-23 14:55:06'}
|
||||
[2025-06-23 14:50:07] [INFO] 全局代理设置成功
|
||||
[2025-06-23 14:50:34] [INFO] Start login
|
||||
[2025-06-23 14:50:46] [ERROR] 获取IP失败,请检查网络连接HTTPConnectionPool(host='api.tianqiip.com', port=80): Max retries exceeded with url: /getip?secret=d8wqfdf0qhrnxgne&num=1&yys=%E7%94%B5%E4%BF%A1&type=json&lb=%0A&port=3&time=5&ts=1&ys=1&cs=1&sign=386ff88188185bc6070ec011266745b3&mr=1 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000020057DB6898>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed',))
|
||||
[2025-06-23 14:50:51] [INFO] 代理IP已经获取{'ip': '114.232.0.16', 'port': 40030, 'prov': '江苏', 'city': '南通', 'isp': '电信', 'expire': '2025-06-23 14:55:51'}
|
||||
[2025-06-23 14:50:52] [INFO] 全局代理设置成功
|
||||
[2025-06-23 14:52:19] [INFO] Start login
|
||||
[2025-06-23 14:52:32] [ERROR] 获取IP失败,请检查网络连接HTTPConnectionPool(host='api.tianqiip.com', port=80): Max retries exceeded with url: /getip?secret=d8wqfdf0qhrnxgne&num=1&yys=%E7%94%B5%E4%BF%A1&type=json&lb=%0A&port=3&time=5&ts=1&ys=1&cs=1&sign=386ff88188185bc6070ec011266745b3&mr=1 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000002ACD2921128>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed',))
|
||||
[2025-06-23 14:52:38] [INFO] 代理IP已经获取{'ip': '171.110.88.163', 'port': 40037, 'prov': '广西', 'city': '桂林', 'isp': '电信', 'expire': '2025-06-23 14:57:38'}
|
||||
[2025-06-23 14:52:39] [INFO] 全局代理设置成功
|
||||
[2025-06-23 14:54:05] [INFO] Start login
|
||||
[2025-06-23 14:54:18] [ERROR] 获取IP失败,请检查网络连接HTTPConnectionPool(host='api.tianqiip.com', port=80): Max retries exceeded with url: /getip?secret=d8wqfdf0qhrnxgne&num=1&yys=%E7%94%B5%E4%BF%A1&type=json&lb=%0A&port=3&time=5&ts=1&ys=1&cs=1&sign=386ff88188185bc6070ec011266745b3&mr=1 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000001C2D25720F0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed',))
|
||||
[2025-06-23 14:54:23] [INFO] 代理IP已经获取{'ip': '125.109.82.134', 'port': 40045, 'prov': '浙江', 'city': '温州', 'isp': '电信', 'expire': '2025-06-23 14:59:24'}
|
||||
[2025-06-23 14:54:24] [INFO] 全局代理设置成功
|
||||
[2025-06-23 14:55:16] [INFO] Start login
|
||||
[2025-06-23 14:55:29] [ERROR] 获取IP失败,请检查网络连接HTTPConnectionPool(host='api.tianqiip.com', port=80): Max retries exceeded with url: /getip?secret=d8wqfdf0qhrnxgne&num=1&yys=%E7%94%B5%E4%BF%A1&type=json&lb=%0A&port=3&time=5&ts=1&ys=1&cs=1&sign=386ff88188185bc6070ec011266745b3&mr=1 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000230D37E2080>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed',))
|
||||
[2025-06-23 14:55:34] [INFO] 代理IP已经获取{'ip': '106.119.250.146', 'port': 40011, 'prov': '河北', 'city': '唐山', 'isp': '电信', 'expire': '2025-06-23 15:00:35'}
|
||||
[2025-06-23 14:55:35] [INFO] 全局代理设置成功
|
@ -22,3 +22,58 @@
|
||||
[2025-06-19 18:20:53] [WARNING] MAC 重置之后:02-6D-59-EF-79-B5
|
||||
[2025-06-19 18:24:31] [WARNING] MAC 重置之前:02-6D-59-EF-79-B5
|
||||
[2025-06-19 18:24:38] [WARNING] MAC 重置之后:02-13-45-57-C3-1E
|
||||
[2025-06-20 16:32:31] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 16:32:43] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 16:33:57] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 16:34:09] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 16:37:37] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 16:37:48] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 16:51:33] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 16:51:45] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 16:54:02] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 16:54:14] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 16:55:52] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 16:56:03] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 16:59:16] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 16:59:28] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:01:41] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:01:53] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:03:42] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:03:54] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:16:01] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:16:13] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:18:33] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:18:46] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:20:18] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:20:30] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:23:11] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:23:23] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:31:58] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 17:32:10] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 18:00:21] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 18:00:33] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 18:10:33] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 18:10:46] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-20 18:27:31] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-20 18:27:44] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-23 11:17:20] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-23 11:17:30] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-23 11:21:53] [WARNING] MAC 重置之前:34-4B-50-00-00-00
|
||||
[2025-06-23 11:22:01] [WARNING] MAC 重置之后:34-4B-50-00-00-00
|
||||
[2025-06-23 13:42:02] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:48:53] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:49:06] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:49:53] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:50:06] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:50:34] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:50:46] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:51:25] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:51:37] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:52:20] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:52:32] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:54:05] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:54:18] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:55:17] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-23 14:55:29] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
[2025-06-23 15:02:25] [WARNING] MAC 重置之前:D0-39-57-B1-E5-41
|
||||
[2025-06-23 15:02:37] [WARNING] MAC 重置之后:D0-39-57-B1-E5-41
|
||||
|
Binary file not shown.
BIN
mysql_table/~$ip_tracking.xlsx
Normal file
BIN
mysql_table/~$ip_tracking.xlsx
Normal file
Binary file not shown.
88
tools.py
88
tools.py
@ -2,23 +2,17 @@ import warnings
|
||||
from hashlib import md5
|
||||
import pywinauto
|
||||
import pyautogui
|
||||
import requests
|
||||
from sqlalchemy import create_engine
|
||||
import pandas as pd
|
||||
import logging
|
||||
import time
|
||||
import sys
|
||||
import smtplib
|
||||
from email.mime.text import MIMEText
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.application import MIMEApplication
|
||||
import os
|
||||
import uuid
|
||||
import redis
|
||||
import ctypes
|
||||
import platform
|
||||
import re
|
||||
import subprocess
|
||||
import winreg
|
||||
import random
|
||||
import sys
|
||||
@ -26,20 +20,17 @@ import datetime
|
||||
|
||||
import pandas as pd
|
||||
import os
|
||||
from openpyxl import load_workbook
|
||||
|
||||
import subprocess
|
||||
import time
|
||||
import requests
|
||||
|
||||
import requests
|
||||
import subprocess
|
||||
import time
|
||||
|
||||
import logging
|
||||
|
||||
from pathlib import Path
|
||||
root_path = Path(__file__).parent
|
||||
|
||||
# 初始化日志
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def is_admin() -> bool:
|
||||
@ -192,7 +183,7 @@ def connect_wifi(ssid: str = 'MaxEntropy', password: str = 'cskj12345678') -> bo
|
||||
try:
|
||||
os.remove(profile_path)
|
||||
except Exception as e:
|
||||
print(f"清理临时文件失败: {str(e)}")
|
||||
print(f"清理wifi连接的临时文件失败: {str(e)}")
|
||||
|
||||
|
||||
# 设置代理
|
||||
@ -209,50 +200,33 @@ def set_proxy(proxy_ip: str, proxy_port: int):
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
#启动软件进程,输入账号密码
|
||||
print('Start login')
|
||||
app = pywinauto.Application().start(proxifier_path,timeout=3)
|
||||
pyautogui.PAUSE = 0.001
|
||||
pyautogui.PAUSE = 0.01
|
||||
|
||||
# 设置主菜单窗口
|
||||
|
||||
# 步骤1:等待Proxifier窗口激活(确保窗口处于活动状态)
|
||||
print("确保Proxifier窗口在前台(按Alt+Tab切换)...")
|
||||
|
||||
# 步骤2:执行完整的按键序列
|
||||
print("开始执行按键序列...")
|
||||
try:
|
||||
# Alt键 - 激活菜单栏
|
||||
pyautogui.keyDown('alt')
|
||||
pyautogui.keyUp('alt')
|
||||
|
||||
# Tab键 - 第一次
|
||||
pyautogui.press('tab')
|
||||
pyautogui.press('enter') # Enter键 - 第一次(打开Profile菜单)
|
||||
|
||||
# Enter键 - 第一次(打开Profile菜单)
|
||||
pyautogui.press('enter')
|
||||
|
||||
# # Tab键 - 第二次
|
||||
pyautogui.press('enter')
|
||||
|
||||
# Enter键 - 第三次(打开Proxy Servers菜单)
|
||||
pyautogui.press('enter')
|
||||
|
||||
pyautogui.press('enter') # Enter键 - 第三次(打开Proxy Servers菜单)
|
||||
|
||||
except Exception as e:
|
||||
print(f"操作出错: {e}")
|
||||
print("请手动检查窗口状态后重试")
|
||||
logger.error(f"操作出错: {e}")
|
||||
logger.error("请手动检查窗口状态后重试")
|
||||
|
||||
|
||||
# 输入ip和端口
|
||||
try:
|
||||
time.sleep(0.1)
|
||||
print('Start input ip and port')
|
||||
pyautogui.typewrite(proxy_ip)
|
||||
|
||||
pyautogui.press('tab')
|
||||
time.sleep(0.1)
|
||||
pyautogui.typewrite(proxy_port)
|
||||
pyautogui.typewrite(str(proxy_port))
|
||||
pyautogui.press('enter')
|
||||
pyautogui.press('tab')
|
||||
pyautogui.press('tab')
|
||||
@ -262,7 +236,7 @@ def set_proxy(proxy_ip: str, proxy_port: int):
|
||||
pyautogui.press('tab')
|
||||
pyautogui.press('enter')
|
||||
except Exception as e:
|
||||
print(e)
|
||||
logger.error(e)
|
||||
|
||||
|
||||
|
||||
@ -651,17 +625,7 @@ class Logger():
|
||||
# 设置格式
|
||||
fmt = logging.Formatter('[%(asctime)s] [%(levelname)s] %(message)s', '%Y-%m-%d %H:%M:%S')
|
||||
|
||||
# 文件处理器
|
||||
fh = logging.FileHandler(self.fileName, encoding='utf-8')
|
||||
fh.setFormatter(fmt)
|
||||
fh.setLevel(Flevel)
|
||||
self.logger.addHandler(fh)
|
||||
|
||||
# 控制台处理器
|
||||
ch = logging.StreamHandler()
|
||||
ch.setFormatter(fmt)
|
||||
ch.setLevel(logging.INFO)
|
||||
self.logger.addHandler(ch)
|
||||
|
||||
def debug(self, message):
|
||||
"""
|
||||
@ -770,6 +734,7 @@ class SetMac(object):
|
||||
|
||||
self.WIN_REGISTRY_PATH = r"SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}"
|
||||
|
||||
self.logger = logging.getLogger(__name__)
|
||||
|
||||
def is_admin(self):
|
||||
"""
|
||||
@ -777,20 +742,20 @@ class SetMac(object):
|
||||
:return:
|
||||
"""
|
||||
if ctypes.windll.shell32.IsUserAnAdmin() == 0:
|
||||
print('Sorry! You should run this with administrative privileges if you want to change your MAC address.')
|
||||
self.logger.error('Sorry! You should run this with administrative privileges if you want to change your MAC address.')
|
||||
sys.exit()
|
||||
else:
|
||||
print('admin')
|
||||
self.logger.info('admin')
|
||||
|
||||
def get_macinfos(self):
|
||||
"""
|
||||
查看所有mac信息
|
||||
:return:
|
||||
"""
|
||||
print('=' * 50)
|
||||
self.logger.info('=' * 50)
|
||||
mac_info = subprocess.check_output('GETMAC /v /FO list', stderr=subprocess.STDOUT)
|
||||
mac_info = mac_info.decode('gbk')
|
||||
print('Your MAC address:\n', mac_info)
|
||||
self.logger.info('Your MAC address:\n', mac_info)
|
||||
# 想要匹配的连接名
|
||||
target_connection_name = "WLAN"
|
||||
|
||||
@ -809,16 +774,15 @@ class SetMac(object):
|
||||
"""
|
||||
mac_info = subprocess.check_output('GETMAC /v /FO list', stderr=subprocess.STDOUT)
|
||||
mac_info = mac_info.decode('gbk')
|
||||
print(mac_info)
|
||||
search = re.search(r'(WLAN)\s+网络适配器: (.+)\s+物理地址:', mac_info)
|
||||
print(search)
|
||||
self.logger.info(search)
|
||||
|
||||
target_name, target_device = (search.group(1), search.group(2).strip()) if search else ('', '')
|
||||
if not all([target_name, target_device]):
|
||||
print('Cannot find the target device')
|
||||
self.logger.error('Cannot find the target device')
|
||||
sys.exit()
|
||||
|
||||
print(target_name, target_device)
|
||||
self.logger.info(target_name, target_device)
|
||||
return target_device
|
||||
|
||||
def get_network_adapter_info(self):
|
||||
@ -849,10 +813,10 @@ class SetMac(object):
|
||||
result[index] = name
|
||||
return result
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"命令执行失败,错误代码: {e.returncode}")
|
||||
print(e.output)
|
||||
self.logger.error(f"命令执行失败,错误代码: {e.returncode}")
|
||||
self.logger.error(e.output)
|
||||
except Exception as e:
|
||||
print(f"发生异常: {e}")
|
||||
self.logger.error(f"发生异常: {e}")
|
||||
return []
|
||||
|
||||
def set_mac_address(self, target_device, new_mac):
|
||||
@ -864,7 +828,7 @@ class SetMac(object):
|
||||
"""
|
||||
|
||||
if not self.MAC_ADDRESS_RE.match(new_mac):
|
||||
print('Please input a correct MAC address')
|
||||
self.logger.error('Please input a correct MAC address')
|
||||
return
|
||||
|
||||
# Locate adapter's registry and update network address (mac)
|
||||
@ -905,7 +869,7 @@ class SetMac(object):
|
||||
raise err
|
||||
|
||||
if adapter_path is None:
|
||||
print('Device not found.')
|
||||
self.logger.error('Device not found.')
|
||||
winreg.CloseKey(key)
|
||||
winreg.CloseKey(reg_hdl)
|
||||
return
|
||||
@ -918,8 +882,6 @@ class SetMac(object):
|
||||
winreg.CloseKey(key)
|
||||
winreg.CloseKey(reg_hdl)
|
||||
|
||||
# Adapter must be restarted in order for change to take affect
|
||||
# print 'Now you should restart your netsh'
|
||||
self.restart_adapter(target_index, target_device)
|
||||
|
||||
def restart_adapter(self, target_index, target_device):
|
||||
@ -974,7 +936,7 @@ class SetMac(object):
|
||||
if one_mac not in used_mac:
|
||||
r.rpush('Mac', one_mac)
|
||||
break
|
||||
print('1111111', one_mac)
|
||||
self.logger.info('random mac:', one_mac)
|
||||
return one_mac
|
||||
|
||||
|
||||
|
@ -26,6 +26,7 @@ class Trade:
|
||||
# 初始化 获取用户券商信息
|
||||
def __init__(self, user, op,order_id):
|
||||
self.log = Logger(f'{root_path}/logs','trade_logic')
|
||||
|
||||
self.user = str(user)
|
||||
self.op = op
|
||||
self.order_id = order_id
|
||||
|
Loading…
x
Reference in New Issue
Block a user