python远程执⾏命令1. 使⽤os模块远程执⾏命令
服务端代码
1import socket
2import os
3
4 sh_server = socket.socket()  #创建⼀个socket对象
5 sh_server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)  #重置IP和端⼝
6 sh_server.bind(('127.0.0.1',8001))  #绑定服务器IP和端⼝
7 sh_server.listen(5)  #设置最⼤监听数
8
9while True: #链接循环
10    conn,addr = sh_server.accept()  #阻塞,等待客户端过来链接
11
12while True: #通信循环
13# 接收客户端发送过来的消息
14    cmd = v(buffer_size).decode('utf-8')
15#使⽤os模块中的popen远程执⾏命令
16    data = os.popen(cmd)
17    res_ad()
18#执⾏结果发送给客户端
19    conn.send(de('gbk'))
20print(res_msg)
21print(len(res_msg))
22 conn.close()
23
客户端代码
1import socket
2
3 sh_client = socket.socket() #创建socket对象
4 sh_client.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
5
6 t(('127.0.0.1',8001))  #链接服务端
7
8while True: #通信循环
9    cmd = input("请输⼊要执⾏的命令:")
10if cmd == '': continue
11if cmd =='exit'or cmd =='quit':break
12    sh_client.de('utf-8'))
13    res_info = v(1024).decode('gbk')
14print('命令执⾏结果是:',res_info)
15 sh_client.close()
2. 使⽤subprocess模块执⾏远程命令
服务端代码
1import socket
2import subprocess
3
4 sh_server = socket.socket()
5 sh_server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)  #重置IP和端⼝
6 sh_server.bind(('127.0.0.1',8001))
7 sh_server.listen(5)
8
9while True: #链接循环
10    conn,addr = sh_server.accept()  #阻塞,等待客户端过来链接
11print('客户端信息',conn,addr)
12
13while True: #通信循环
14# 接收客户端发送过来的消息
15print('----------接收命令')
16        cmd = v(buffer_size).decode('utf-8')
17print('要执⾏的命令是:',cmd)
18if cmd == 'exit'or cmd == 'quit':break
19#使⽤subprocess模块执⾏远程命令
20        ret = subprocess.Popen(cmd,shell=True,
21                                stdout = subprocess.PIPE,
22                                stderr = subprocess.PIPE,
23                                stdin = subprocess.PIPE)
24
25        err = ad()
26if err:
27            ret_msg = err
28else:
29            ret_msg = ad()
30if not ret_msg:
31            ret_msg = "命令执⾏成功".encode('gbk')input命令
32print('---------命令执⾏完成')
33        conn.send(ret_msg)
34
35    conn.close()
客户端代码
1import socket
2
3 sh_client = socket.socket()
4 sh_client.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) 5
6 t(('127.0.0.1',8001))
7
8while True: #通信循环
9    cmd = input("请输⼊要执⾏的命令:")
10if cmd == '': continue
11if cmd =='exit'or cmd =='quit':break
12    sh_client.de('utf-8'))
13    res_info = v(1024).decode('gbk')
14print('命令执⾏结果是:',res_info)
15 sh_client.close()