国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿荣旗| 浮梁县| 肃宁县| 灵石县| 三江| 临湘市| 麻城市| 平泉县| 道真| 镇巴县| 红桥区| 通化市| 新河县| 册亨县| 睢宁县| 浏阳市| 禹州市| 怀柔区| 濮阳市| 宁波市| 千阳县| 长岭县| 象山县| 晋江市| 淳安县| 克什克腾旗| 柘城县| 南岸区| 永定县| 太谷县| 特克斯县| 玛多县| 县级市| 青阳县| 徐州市| 钟祥市| 普安县| 潞西市| 普安县| 新密市| 招远市|