Socket_SSH-1
服务器端:
import socket,os
server=socket.socket()
server.bind(('localhost',9999))
server.listen()
while True:
conn,addr=server.accept()
print("new conn:",addr)
while True:
print("等待新指令")
data=conn.recv(1024)
if not data:
print("客户端已经断开")
break
print("执行指令:",data)
cmd_res=os.popen(data.decode()).read()
#接收字符串,执行结果也是字符串.os.popen()函数调用系统命令nmap进行扫描,
#但用os.popen就可以读出执行的内容,popen返回的是file read的对象,对其进行读取使用read(),就可看到执行的输出:
if len(cmd_res)==0:
cmd_res="cmd has no output.."
print("before send",len(cmd_res))
conn.send(cmd_res.encode("utf-8"))
print("send done")
客户端:
import socket
client=socket.socket()
client.connect(("localhost",9999))
while True:
cmd=input(">>:").strip()
if len(cmd)==0:continue
client.send(cmd.encode("utf-8"))
cmd_res=client.recv(1024)
print(cmd_res.decode())
server.close()
服务器端运行结果:
new conn: ('127.0.0.1', 64074)
等待新指令
执行指令: b'dir'
before send 466
send done
等待新指令
执行指令: b'pwd'
'pwd' is not recognized as an internal or external command,
operable program or batch file.
before send 19
send done
等待新指令
客户端运行结果:
>>:dir
b' Volume in drive C is OSDisk\n Volume Serial Number is 002E-D604\n\n Directory of C:\\abccdxddd\\Oldboy\\Py_Exercise\\Day8\n\n08/03/2017 11:18 AM <DIR> .\n08/03/2017 11:18 AM <DIR> ..\n08/03/2017 11:17 AM 650 socket_server_ssh.py\n08/03/2017 11:18 AM 250 sock_server_client.py\n08/02/2017 01:50 PM 187 ????.py\n 3 File(s) 1,087 bytes\n 2 Dir(s) 146,482,311,168 bytes free\n'
>>:pwd
b'cmd has no output..'
>>:
Socket_SSH-1的更多相关文章
- python 3.x 学习笔记14 (socket_ssh and socket_文件传输)
ssh服务端 import socket,os server = socket.socket() server.bind(('localhost',6666)) server.listen() con ...
- D08——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D08 20180829内容纲要: socket网络编程 1 socket基础概念 2 socketserver 3 socket实现简单的SSH服务器端和 ...
随机推荐
- Visual studio 2010 TFS地址解析,让团队资源管理器不再显示IP地址
第一步: 找到名为hosts的配置文件(路径C:\Windows\System32\drivers\etc\hosts)用记事本打开并写入需要的配置,例如我用到的是TFS服务器的IP地址为192.16 ...
- Oracle DELETE和TRUNCATE 的区别
语法delete from aa truncate table aa 区别 1.delete from后面可以写条件,truncate不可以. 2.delete from记录是一条条删的,所删除的每行 ...
- 使用union
QUERY: explain extended ) TRACE: { "steps": [ { "join_preparation": { "sele ...
- 2019年猪年海报PSD模板-第六部分
14套精美猪年海报,免费猪年海报,下载地址:百度网盘,https://pan.baidu.com/s/1WdlIiIdj1VVWxI4je0ebKw
- AirtestIDE实践二:Poco框架试用
上一篇用airtest框架做了一个梦幻西游手游的DEMO,这次看看poco的强大之处.首先安装poco:pip install pocoui 其次,把SDK集成到你家游戏中,我这直接用官网提供的一个U ...
- lesson 24 A skeleton in the cupboard
lesson 24 A skeleton in the cupboard conceal sth from sb 对某人隐藏某事 He conceals his girlfriend from his ...
- TPO-15 C1 The campus newspaper's reporter position
TPO-15 C1 The campus newspaper's reporter position 第 1 段 1.Listen to a conversation between a Studen ...
- Eclipse上安装Activiti插件
今天我们来讲下如何在Eclipse上安装Activiti插件,以后我们要用这个插件来画流程设计图: 这个插件名字是:Activiti BPMN 2.0 designer 具体使用,可以参考官方用户指南 ...
- HashMap 阅读
最近研究了一下java中比较常见的map类型,主要有HashMap,HashTable,LinkedHashMap和concurrentHashMap.这几种map有各自的特性和适用场景.使用方法的话 ...
- 【Linux 运维】linux系统关机、重启、注销命令
linux 关机.重启.注销命令: 关机命令: shutdown -h now 立刻关机(生产常用) shutdown -h +1 一分钟后关机 ( shutdown -c 可以将 ...