本文最后更新于 2024-12-04,文章内容已经超过7天没更新了。

工作过程中,经常会用手机登录各种网站,免不了会输入验证码,经常的解锁,查看短信,把6位验证码记下来,然后在输入到电脑上。这一整套流程下来非常的繁琐,于是我使用局域网+python+快捷指令实现了手机接收验证码,自动识别6位验证码并推送到电脑,电脑监听接收验证码并copy到剪切板,这样我们直接ctrl+v就可以了

接下来告诉大家怎么实现

一、python脚本

首先你的电脑上要有python环境,然后下载相关的包

pip install flask pyperclip threading pystary pyinstall

编写脚本

from flask import Flask, request, jsonify
import pyperclip
import threading
import pystray
from PIL import Image
import os

app = Flask(__name__)

# 假设有一个icon.png作为托盘图标的图片文件
image = Image.open("icon/Copy.png")

def create_api():
    @app.route('/set_clipboard', methods=['POST'])
    def set_clipboard():
        soa_code = request.json.get('soa_code')
        if soa_code:
            pyperclip.copy(soa_code)
            return jsonify({"status": "success", "message": "SOA code copied to clipboard"})
        else:
            return jsonify({"status": "error", "message": "No SOA code provided"}), 400

    app.run(host="0.0.0.0", port=5000)

def on_exit(icon, item):
    icon.stop()
    os._exit(0)

def start_tray():
    menu = (pystray.MenuItem('Exit', on_exit),)
    icon = pystray.Icon("name", image, "My System Tray Icon", menu)
    icon.run()

if __name__ == '__main__':
    # Start Flask server in a separate thread
    api_thread = threading.Thread(target=create_api)
    api_thread.daemon = True
    api_thread.start()

    # Start system tray icon in the main thread
    start_tray()

打包程序要用到pyinstall包

pyinstaller --noconsole --onefile --add-data "icon/Copy.png;./icon" copy_code.py

打包成一个exe文件,可以下载一个自己喜欢的icon放到icon目录下

双击运行exe,托盘栏会有程序图标,右键也可以关闭进程

二、windows网络配置

关闭windows防火墙或者添加入站规则

控制面板\系统和安全\Windows Defender 防火墙

高级设置添加入站规则

下一步,自己命名一个名称

然后我们 win+R 打开cmd查看一下端口是否通

netstat -an | find "5000"

如果有0.0.0.0:5000的记录表示已经在局域网上开放了5000端口

三、手机配置

目前只有苹果手机有快捷指令,安卓手机如果有自动化流程的软件也可以,下边只演示苹果手机如何配置

首先苹果手机要连接和电脑同一局域网的wifi

打开快捷指令,选择自动化

新建自动化选择"信息"

信息包含填验证码,立即运行

下一步,新建空白自动化

自动化配置如下

完成!!!这样只要短信中包含验证码字段,就会自动运行截取6位验证码,然后把验证码推送到电脑端,电脑端自动copy到剪切板