日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

模拟ssh, hashlib模块, struct模块, subprocess模块

發布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模拟ssh, hashlib模块, struct模块, subprocess模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一. 模擬ssh

# ===================================== 服務器端 =====================================import socket import subprocess # 系統操作server = socket.socket()server.bind(('127.0.0.1',8008))server.listen(5)while True:print("server is working.....")conn,addr = server.accept()# 字節類型while True:# 針對window系統try:cmd = conn.recv(1024).decode("utf8") # 阻塞if cmd == b'exit':breakres=subprocess.Popen(cmd,shell=True,stderr=subprocess.PIPE,stdout=subprocess.PIPE,)# print("stdout",res.stdout.read())# print("stderr",res.stderr.read().decode("gbk"))out=res.stdout.read()err=res.stderr.read()print("out響應長度",len(out))print("err響應長度",len(err))if err:import structheader_pack = struct.pack("i", len(err))conn.send(header_pack)conn.send(err)else:#構建報頭import structheader_pack=struct.pack("i",len(out))print("header_pack",header_pack)# # 發送報頭conn.send(str(len(out)).encode("utf8"))# 發送數據conn.send(out)except Exception as e:breakconn.close()# ===================================== 客戶端 ===================================== import socket import structsk = socket.socket()sk.connect(('127.0.0.1', 8008))while 1:cmd = input("請輸入命令:")sk.send(cmd.encode('utf-8')) # 字節if cmd == "": # 空字符串無法發送continueif cmd == 'exit':breakheader_pack = sk.recv(4)data_length = struct.unpack("i", header_pack)[0] # unpack是一個元組print("data_length", data_length)data_length = int(sk.recv(1024).decode("utf8"))print("data_length", data_length)recv_data_length = 0recv_data = b""while recv_data_length < data_length:data = sk.recv(1024)recv_data_length += len(data)recv_data += dataprint(recv_data.decode("gbk"))sk.close()

  

二. hashlib模塊

import hashlibmd5=hashlib.md5() md5.update(b"hello") md5.update(b"yuan")print(md5.hexdigest()) print(len(md5.hexdigest()))#helloyuan: d843cc930aa76f7799bba1780f578439 # d843cc930aa76f7799bba1780f578439 # 多次update和單次update結果一樣#############################################md5=hashlib.md5()with open("ssh_client.py","rb") as f:for line in f:md5.update(line) # 多次update和單次update結果一樣print(md5.hexdigest()) # f.read()

  

三.?struct模塊

import structres=struct.pack("i",2934781)print(res) print(len(res))obj=struct.unpack("i",res) print(obj[0])

  

四.?subprocess模塊 # windows系統明命令

import subprocessres=subprocess.Popen("dir",shell=True,stderr=subprocess.PIPE,stdout=subprocess.PIPE)print(res.stdout.read().decode("gbk"))

  

?

轉載于:https://www.cnblogs.com/NachoLau/p/9588952.html

總結

以上是生活随笔為你收集整理的模拟ssh, hashlib模块, struct模块, subprocess模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。