python编写TCPServer远程命令执行程序
服务器端
1 #!/usr/bin/env python 2 #coding=utf-8 3 import os 4 import SocketServer 5 6 class myserver(SocketServer.BaseRequestHandler): 7 def handle(self): 8 print 'Get connection from ',self.client_address 9 while True: 10 self.data = self.request.recv(4096).strip() 11 if self.data: 12 print self.client_address,'execute ',self.data 13 cmd = os.popen(self.data) 14 result = cmd.read() 15 self.request.sendall(result) 16 17 if __name__=='__main__': 18 HOST,PORT='',5009 19 server = SocketServer.ThreadingTCPServer((HOST,PORT),myserver) 20 server.serve_forever()
客户端
#!/usr/bin/env python #coding=utf-8 import socket host,port='192.168.100.24',5009 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect((host,port)) while True: cmd = raw_input('Please input command:') if cmd: s.sendall(cmd.encode()) data = s.recv(4096) if data: print data s.close()
这是个简易的TCP服务器,支持多个连接同时连到服务器上,客户端输命令在服务器端执行,如果客户端输入的命令在服务器端不存在,或者类似于top交互式等,结果无法返回。

浙公网安备 33010602011771号