SmsForwarder
国内地址:https://gitee.com/yeedayun_lijiawang/SmsForwarder
手机配置好转发通道Socket以及转发规则
电脑建立Socket代理客户端并开启
import socket, json, os, re, queue
class SocketServer:
def __init__(self, port, code_queue):
self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
self.s.bind(('0.0.0.0', port))
self.s.listen(5)
print(f"Server on port {port}...")
self.code_queue = code_queue
def start(self):
while True:
try:
c, addr = self.s.accept()
print(f"From {addr}")
data = c.recv(1024)
text = data.decode('utf-8') if data else ""
print(f"Data: {text}")
pattern = r'(?<!\d)\d{4,8}(?!\d)' # 匹配 4 到 8 位的数字
match = re.search(pattern, text)
if match:
extracted_number = match.group(0)
self.code_queue.put(extracted_number)
# 返回提取的结果给客户端
c.send(str(extracted_number).encode('utf-8'))
c.close()
else:
c.send("No valid code found".encode('utf-8'))
except Exception as e:
print(f"Error: {e}")
finally:
c.close()
# 启动套接字服务器
def start_socket_server(code_queue):
with open(os.path.join(os.path.dirname(__file__), 'config.json')) as f:
config = json.load(f)
port = config.get('port', 5000)
server = SocketServer(port, code_queue)
server.start()
if __name__ == "__main__":
code_queue = queue.Queue()
start_socket_server(code_queue)