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

首頁 > 編程 > Python > 正文

python通過Windows下遠程控制Linux系統

2019-11-02 14:13:23
字體:
來源:轉載
供稿:網友

一、學習目標

【通過Windows下遠程控制Linux系統實現對socket模塊認識】

二、實驗環境

Windows下(模擬客戶端 [ IP:192.168.43.87 ] ):python3.6
Linux下(模擬服務端 [ IP:192.168.43.226 ] ):python2.7

三、前提條件

兩者能夠ping通
服務端關閉防火墻,selinux

四、代碼

服務端代碼(server.py):

#!/usr/bin/env python#coding:utf-8import socketimport osHOST = "192.168.43.226"PORT = 5000s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)addr = (HOST,PORT)s.bind(addr)       # 綁定地址s.listen(1)       # 打開監聽conn,addr = s.accept()  # 同意建立連接print(addr)       # 輸出客戶端IPdef get_client_file():   # 定義服務端獲取文件函數  conn.send("Ready to receive!")  data = conn.recv(20480) # 接受客戶端的數據  print(data)  with open("clientFile.txt",'wb') as f:    f.write(data)  conn.close()def send_server_file():   # 定義服務端發送文件函數  c_filepath = conn.recv(1024) # 接受客戶機請求路徑  with open(c_filepath,'rb') as f:    data = f.read()    conn.sendall(data)    conn.close()def main():  while True:    cmd = conn.recv(1024)    print(cmd) # 打印接受的命令    if cmd == "q":      break    if cmd == "transdata":      get_client_file()  # 獲取客戶端文件      break    if cmd == "recvdata":      send_server_file() # 發送服務端文件      break        data = os.popen(cmd)  # 響應客戶端命令    sdata = data.read()       if sdata:      conn.sendall(sdata)    else:      conn.send("finish")       conn.close()    s.close()  if __name__ == "__main__":  main()

客戶端(client.py):

import socketHOST = "192.168.43.226"PORT = 5000c = socket.socket(socket.AF_INET,socket.SOCK_STREAM)addr = ((HOST,PORT))c.connect(addr)     # 連接服務器def send_client_file(): # 定義客戶端發送文件函數  data = c.recv(1024)   # 接收預備傳輸提示  print(data)         c_filepath = input("Please enter the client file path:")  with open(c_filepath,"rb") as f:    file = f.read()   # 以byte方式讀取文件內容  c.sendall(file)     # 將讀取的內容發往服務端def get_server_file():   # 定義客戶端接受文件函數  s_filepath = input("Please enter the server file path:")  c.send(bytes(s_filepath,encoding='gbk'))  data = c.recv(20480)  # 等待接受服務器數據  with open("shadow.txt","wb") as f:    f.write(data)def main():  while True:    cmd = input("Plsase input a command:")    c.send(bytes(cmd,encoding="gbk"))  # 發送數據    if cmd == "q":      break    if cmd == "transdata":   # 創建發送客戶端文件命令      send_client_file()      break    if cmd == "recvdata":    # 創建接收服務端文件命令      get_server_file()      break    data = c.recv(20480)    print(data)  c.close()if __name__ =="__main__":  main()

五、測試結果(這里拿獲取服務端shadow文件測試)

在windows下運行client.py文件
》》鍵入:recvdata
》》鍵入:/etc/shadow

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 达日县| 监利县| 新野县| 乌审旗| 临高县| 大厂| 丘北县| 汝南县| 如皋市| 任丘市| 黄石市| 西和县| 太湖县| 新邵县| 昂仁县| 昆明市| 象州县| 华容县| 吕梁市| 丰宁| 文成县| 闸北区| 澎湖县| 仪陇县| 章丘市| 安仁县| 天柱县| 永嘉县| 安陆市| 大同县| 高碑店市| 黄冈市| 海宁市| 海兴县| 嘉禾县| 伊川县| 白银市| 砚山县| 西贡区| 汾西县| 板桥市|