import subprocess import hashlib import os import re import requests from bs4 import BeautifulSoup import base64 from flask import Flask, request, jsonify # 获取CPU序列号 def get_cpu_serial(): try: cmd = 'wmic cpu get processorid' result = subprocess.check_output(cmd, shell=True).decode() return result.strip() except subprocess.CalledProcessError as e: return "Error: " + str(e) # 根据CPU序列号生成授权码 def generate_authorization_code(cpu_serial): # 添加一些随机生成的元素以增加复杂性 random_element = os.urandom(16) # 生成16字节的随机数 # 将CPU序列号和随机元素合并 combined_data = cpu_serial.encode() + random_element # 使用SHA-256哈希算法 auth_code = hashlib.sha256(combined_data).hexdigest() return auth_code def extract_chinese_surnames(): # 调用函数并传入文件路径 file_path = 'db.txt' # 这里需要替换成你的文件实际路径 # 初始化一个空列表来存储中文姓氏 surnames = [] # 打开文件并读取每一行 with open(file_path, 'r', encoding='utf-8') as file: for line in file: # 使用正则表达式匹配中文字符 # \u4e00-\u9fff 表示匹配任何中文汉字的Unicode编码范围 surname = re.findall(r'[\u4e00-\u9fff]+', line) # 如果找到中文字符,将其作为姓氏添加到列表中 if surname: surnames.extend(surname) return surnames def getXingMing(xm): if xm[0:2] in extract_chinese_surnames(): xs = xm[0:2] # 两个字的复姓 mz = xm[2:] # 后续部分是名字 else: xs = xm[0] # 一个字的单姓 mz = xm[1:] # 后续部分是名字 # 目标网站的URL url = "https://m.xingming.com/dafen/" # 准备要发送的数据,通常为字典格式 data = { 'xs': xs, 'mz': mz, 'action': 'test' } # 发送POST请求 response = requests.post(url, data=data) # 检查请求是否成功 if response.status_code == 200: pass else: print("请求失败,状态码:", response.status_code) return jsonify({'success': False, 'message': '请求失败'}), 201 # 打印响应内容 soup = BeautifulSoup(response.text, "html.parser") # 详细信息 original_string = '' for i in range(4, 35): elements = soup.select("p")[i] original_string = original_string + '

' + elements.text.replace('根据姓名网·名字测试打分,', '') + '

' # 得分 score = soup.select("p")[34].select("font")[0].text # 对字节进行URL安全的Base64编码 # 将字符串转换为字节 bytes_to_encode = original_string.encode('utf-8') encoded_bytes_urlsafe = base64.urlsafe_b64encode(bytes_to_encode) # 将URL安全的Base64编码后的字节对象解码为字符串 encoded_string_urlsafe = encoded_bytes_urlsafe.decode('utf-8') return jsonify({'success': True, 'score': int(score), 'memo': encoded_string_urlsafe}, 200) # 起名 def getQingMing(gsname, qimingsex): # 1:男 0:女 # 目标网站的URL url = "https://m.xingming.com/qiming/" # 准备要发送的数据,通常为字典格式 data = { 'gsname': gsname, 'qimingsex': qimingsex, 'action': 'test' } # 发送POST请求 response = requests.post(url, data=data) # 检查请求是否成功 if response.status_code == 200: pass else: print("请求失败,状态码:", response.status_code) return jsonify({'success': False, 'message': '请求失败'}), 201 # 打印响应内容 soup = BeautifulSoup(response.text, "html.parser") names = [] for i in range(13, 25): nName = soup.select("li")[i].next.text names.append(nName) return names