
import socket import hashlib import subprocess import struct phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #重用地址 phone.bind(('192.168.20.105',8081)) phone.listen(5) while 1: conn,addr=phone.accept() print('线路是%s' % conn) print('地址是',addr) tag = True while 1: while tag: user = conn.recv(1024).decode('utf-8') pwd = conn.recv(1024).decode('utf-8') md5_obj = hashlib.md5(user.encode('utf-8')) s = pwd+user print(s) md5_obj.update(s.encode('utf-8')) pwd = md5_obj.hexdigest() print(pwd) if user == 'egon'and pwd=='82bdb4164c14585f32e70ec0a37b3569': conn.send('right'.encode('utf-8')) tag = False break else: conn.send('用户名或密码错误,请重新输入!'.encode('utf-8')) try: cmd = conn.recv(1024) res = subprocess.Popen(cmd.decode('utf-8'),shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE) mes = res.stdout.read() mesr = res.stderr.read() ret = struct.pack('i',(len(mes)+len(mesr))) conn.send(ret) conn.send(mes) conn.send(mesr) except Exception: break conn.close() phone.close()

import socket import time import struct phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM) phone.connect(('192.168.20.105',8081)) tag = True while 1: while tag: user = input('username:') phone.send(user.encode('utf-8')) pwd = input('password:') phone.send(pwd.encode('utf-8')) time.sleep(1) mes = phone.recv(1024).decode('utf-8') print(mes) if mes =='right': tag = False break cmd = input('>>:') if not cmd:continue phone.send(cmd.encode('utf-8')) lens = phone.recv(4) lens = struct.unpack('i',lens) lens = lens[0] mes = phone.recv(1024) mes_size = 1024 while mes_size<lens: if lens-mes_size>1024: mes+=phone.recv(1024) else: mes+=phone.recv(lens-mes_size) mes_size += 1024 print(mes.decode('gbk')) phone.close()
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步