基于tcp实现远程执行命令
import subprocess
subprocess.Popen('dir',shell=True) shell是命令解释器
stdout 标准输出
stdin 标准输入
stderr 标准错误输出
客户端断开链接,服务端要加异常处理,注意不同平台式不一样的,有的是客户端断开链接,服务端不再阻塞,接收一直为空
对于window用try。。。except,其它平台可用if not。。。:break
异常处理机制
window使用:
客户端正常断开,不会阻塞,服务端接收一直为空,用if来处理
用异常处理来解决客户端非正常关闭情况下会出现的问题,try。。。except
import socket import subprocess ip_port=('192.168.1.6',8002) back_log=5 buffer_size=1024 tcp_server=socket.socket(socket.AF_INET,socket.SOCK_STREAM) tcp_server.bind(ip_port) tcp_server.listen(back_log) print('------>') while True:conn,addr=tcp_server.accept()print(conn)print(addr)while True:try:cmd=conn.recv(buffer_size)if not cmd:breakprint('来自客户端的消息',cmd.decode('utf-8'))res=subprocess.Popen(cmd.decode('utf-8'),shell=True,stdout=subprocess.PIPE,stdin=subprocess.PIPE,stderr=subprocess.PIPE)err=res.stderr.read()if err:cmd_res=errelse:cmd_res=res.stdout.read()conn.send(cmd_res)except Exception:breakconn.close() tcp_server.close()
tcp_server
import socket ip_port=('192.168.1.6',8002) buffer_size=1024 tcp_client=socket.socket(socket.AF_INET,socket.SOCK_STREAM) tcp_client.connect(ip_port) while True:cmd=input('>>:').strip()if not cmd: continueif cmd=='quit':breaktcp_client.send(cmd.encode('utf-8'))print(123)cmd_res=tcp_client.recv(buffer_size)print('来自服务端的消息',cmd_res.decode('gbk')) tcp_client.close()
tcp_client
转载于:https://www.cnblogs.com/jintian/p/10970909.html
基于tcp实现远程执行命令相关推荐
- Python之网络编程(基于tcp实现远程执行命令)
文章目录 实现目标 服务端分析 客户端分析 远程执行结果 本篇是用tcp套接字实现的一个远程执行命令的小案例,tcp套接字是一种面向连接的Socekt,针对面向连接的TCP服务应用,安全,但是效率低 ...
- ansible介绍、安装、远程执行命令、拷贝文件或目录、远程执行脚本、管理任务计划、安装包和管理服务、playbook、变量、循环、条件判断、handlers、安装nginx、管理配置文件
24.15 ansible介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系 ...
- linux 带环境变量 远程执行,SSH远程执行命令环境变量问题
SSH命令格式 usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address: ...
- 执行远程linux命令,linux shell 远程执行命令
经常要部署多台服务器上面的应用,如果一个个机器的登录太麻烦. 所有就想到编写一个脚本来部署不同的服务器 前提条件: 配置ssh免登陆 如果不会的请参加我的另外一篇文章 http://blog.csdn ...
- 和远程ip_漏洞Microsoft Windows TCP/IP 远程执行代码漏洞威胁通告
2020年10月14日,中测安华必达实验室技术团队依托监测平台第一时间发现微软公司(Microsoft)披露了Microsoft Windows TCP/IP 远程执行代码漏洞(CVE-2020-16 ...
- python paramiko模块:远程执行命令及上传和下载
远程执行命令: df -y 交互输入y 基于公钥和私钥远程执行命令: 上传下载文件: 基于公钥和私钥上传和下载:
- 和远程ip_【漏洞预警】Windows TCP/IP远程执行代码漏洞(CVE202016898)
2020年10月13日,阿里云应急响应中心监测到微软发布补丁修复了TCP/IP远程执行代码漏洞(CVE-2020-16898),官方评级严重.目前微软官方已提供相应的月度安全补丁以修复该漏洞. 漏洞描 ...
- Linux 实操———— Shell 远程执行命令
引言 目前,开发人员的部署方式是,将项目打包(Maven 打包) 然后将 生成的 jar 包等文件,通过Xshell 等终端工具手动传输到远程服务器上,然后再通过在终端执行远程服务器上的 shell ...
- windows服务器远程执行命令(PowerShell+WinRM)
Windows 远程管理 (WinRM) 是 WS-Management 协议的 Microsoft 实现.该协议是基于简单对象访问协议 (SOAP) 的.防火墙友好的标准协议,使来自不同供应商的硬件 ...
- PowerShell 远程执行命令
PowerShell 远程执行命令 https://www.cnblogs.com/wanghao4023030/p/11151099.html 最近在做一些自动化的测试工作,在代码实现的过程中需要远 ...
最新文章
- Forerunner:首个面向“多未来”的推测执行技术
- 二叉树的层序遍历和二叉树的线索化
- 进程注入的研究与实现
- 【Unix 网络编程】TCP状态转换图详解
- Go语言中的匿名函数和闭包的样子
- 【Matlab】for循环进度条显示百分比进程和剩余时间
- collect2: error: ld returned 1 exit status编译错误
- 求助(十万火急):关于httpwebrequest发送请求绑定ip的问题.
- MyEclipse项目无法自动编译解决方案
- 可扩展的Web架构和分布式系统
- scala Trait及其与抽象类的比较
- 中国第二代支付清算体系
- appkey、appSecret自动生成
- 每天一记、美文积累、感慨杂谈
- 微信小程序设计稿pt怎么转rpx
- AutoCAD2014的安装
- 个人网站如何开通收款功能申请支付接口?
- [GUI] 使用MATLAB从图片中提取曲线数据
- HTTPS加密网站,地址重写配置
- 操作系统 - 处理机调度仿真