模拟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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用pssh进行并行批量操作

假如同时给上千台服务器执行一个命令,拷贝一个文件,杀一个进程等,有什么简化运维管理的工具呢?在小型使用中我都是使用for循 环,数量巨大,一方面不确定操作是否成功,一方面for循环语句性能不好估计且是不是同步并行执行.&#xff0c;这类工具比如 pdsh&#xff0c;mussh&#…

图像清晰度评价函数

概述 图像清晰度是用来指导调焦机构找到正焦位置的评价函数。理想的清晰度评价曲线如下图所示,其中P 是评价函数最大值的位置,其对应正焦位置,P1 和P2 为正焦位置焦前和焦后采集到图像的清晰度评价结果。 为了指导调焦机构找到正焦位置,清晰度曲线须具有以下特点: 单…

Linux下读写芯片的I2C寄存器

Linux下读写芯片的I2C寄存器 2012-01-10 11:40:18 标签&#xff1a;Linux 寄存器 驱动 读写 I2C 原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/76096…

列表和表格---学习笔记02

第7章 列表和表格 7.1 有序列表<ol type"A"><li>这里是第1个li</li><li>这里是第2个li</li><li>这里是第3个li</li></ol> ol属性&#xff1a;type : 数字(1),大小写字母(A,a),大小写罗马数字(I,i)start: "起始…

(下)挖掘传统行业日志大数据的无限价值

&#xfffc;8 月 27 日晚上八点&#xff0c;七牛云高级解决方案架构师程雪松在 IT 大咖说进行了题为《挖掘传统行业日志大数据的无限价值》的直播&#xff0c;对传统行业运维常见困境和统一日志管理的必要性进行了深入解析&#xff0c;并通过 Pandora 的一些真实用户案例和大家…

CMOS图像传感器 —— ISOCELL

最近,外媒曝光了三星最新的CIS传感器路线图,路线图显示,三星在2亿像素之外已经规划2025年推出576MP像素的传感器,也就是5亿7千6百万像素。 若5.76亿像素的传感器推出,意味着手机传感器可媲美中高端单反水平了。三星没有提及这个5.76亿像素的传感器是怎样实现的。因…

LeetCode 153. Find Minimum in Rotated Sorted Array (在旋转有序数组中找到最小值)

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2). Find the minimum element. You may assume no duplicate exists in the array. 题目标签&#xff1a;Array, Binary Se…

YUV图像

YUV420P&#xff0c;Y&#xff0c;U&#xff0c;V三个分量都是平面格式&#xff0c;分为 I420 和 YV12 。 I420 格式和 YV12 格式的不同处在U平面和V平面的位置不同。在I420格式中&#xff0c;U平面紧跟在Y平面之后&#xff0c;然后才是V平面&#xff08;即&#xff1a;YUV&…

色调映射(Tone Mapping)

一、概述 虽然HDR 图像有较大的动态范围,能更细致地反映真实场景,但他的缺点也很明显。一是同尺寸的数据比低动态范围图像大,需要更大的存储空间与传输带宽。二是难以输出,目前大多数显示器、打印机等图形输出设备的动态范围要比普通的高动态范围图像小得多。。因此,色调映…

实用软件工具

1.突破百度网盘下载速度现在&#xff0c;使用 Aria2下载 Aria2-不限速全平台下载利器但是百度网盘账号会被限速 &#xff0c;冲会员解除正常限制网速2.Safari 预览&#xff0c;将网页转化为自定义尺寸 PDF 3.清除Xcode 缓存 删除模拟器运行缓存&#xff0c;找到Developer->…

[原创]Toolbar setNavigationIcon无效

最近在做一个Toolbar&#xff0c;setNavigationIcon()这个方法一直无效&#xff0c;说什么的都有&#xff0c;什么getSupportActionBar().setNavigationIcon()的&#xff0c;说设置style的&#xff0c;说放到setSupportActionBar()之后的。 其实没有说全&#xff0c;还应该放到…

YUV格式详解

分类&#xff1a; H.264 MPEG TV 2008-05-14 09:24 16181人阅读 评论(21) 收藏 举报 YUV是指亮度参量和色度参量分开表示的像素格式&#xff0c;而这样分开的好处就是不但可以避免相互干扰&#xff0c;还可以降低色度的采样率而不会对图像质量影响太大。YUV是一个比较笼统地说…

KVM安装、镜像创建(一)

环境准备 VMware Workstation Pro启动虚拟化 查看启动的系统是否支持vmx或svm grep -E (vmx|svm) /proc/cpuinfo 备注&#xff1a;操作系统centos 7 KVM安装 1、yum查看kvm安装包 yum list |grep kvm 2、安装 yum install -y qemu-kvm qemu-kvm-tools libvirt3、启动libvirtd s…

Sensor 结构——前照、背照、堆栈

优异的工艺和技术可以使得即便不使用更新结构的CMOS,同样拥有更好的量子效率、固有热噪声、增益、满阱电荷、宽容度、灵敏度等关键型指标。在相同技术和工艺下,底大一级的确压死人(全画幅和aps-c)。人类的进步就是在不断发现问题,解决问题。背照式以及堆栈式CMOS的出现,也…

少犯非智力错误

工作节省时间最重要的方法之一就是少犯非智力错误。 同事反馈说不能预览&#xff0c;排查半天找不到问题&#xff0c;最后发现是IP地址配错了。 现场问题同事搞半天找不出原因&#xff0c;结果一看是网域配错了。 还有些问题开始排查定位不到原因&#xff0c;回头看时才发现端口…

搭建分布式hadoop2.x集群

前期准备&#xff1a; 1.我这里用了三台虚拟机&#xff0c;.默认已经配置好静态IP和IP域名映射&#xff0c;它们相互之间可以ping通 第一台&#xff1a;192.168.174.131 hadoopNumber01.medal.com 第二台&#xff1a;192.168.174.132 hadoopNumber02.meda.com 第三台…

ortp库使用入门

原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/345642 我们知道&#xff0c; RTP&#xff08;Real-timeTransportProtocol&#xff09;是用于Internet上…

可测性设计技术

传统的设计过程和测试过程是分开的&#xff0c;而且测试往往只在设计阶段的后期才被考虑。近年来&#xff0c;测试越来越早地被考虑并出现在设计过程中&#xff0c;被称为“可测性设计”。可测性设计的主要思路就是在设计之初就考虑关于测试方面的设计&#xff0c;并在设计阶段…

优酷电视剧爬虫代码实现一:下载解析视频网站页面(3)补充知识点:htmlcleaner使用案例...

htmlcleaner 下载地址&#xff1a;htmlcleaner2_1.jar 源码下载&#xff1a;htmlcleaner2_1-all.zip 写一个测试用的html文件&#xff1a;html-clean-demo.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional" "http://www.w3.org/TR/xhtml1/D…

小程序开发-利用canvas实现保存二维码海报到本机

场景及需求 在小程序开发过程中&#xff0c;经常需要实现保存某个页面为带小程序码的二维码海报图片到本地&#xff0c;然后用于分享或者发朋友圈等操作。 主要技术点及小程序相关api 技术注意事项 小程序的canvas与H5 canvas使用api大部分一致&#xff0c;但由于小程序中没有D…