python通过Windows下远程控制Linux系统


Posted in Python onJune 20, 2018

一、学习目标

【通过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-8

import socket
import os

HOST = "192.168.43.226"
PORT = 5000
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
addr = (HOST,PORT)
s.bind(addr)       # 绑定地址
s.listen(1)       # 打开监听
conn,addr = s.accept()  # 同意建立连接
print(addr)       # 输出客户端IP

def 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 socket

HOST = "192.168.43.226"
PORT = 5000
c = 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

python通过Windows下远程控制Linux系统

感兴趣的朋友可以一起研究讨论学习技术!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python开发之函数定义实例分析
Nov 12 Python
Python对数据库操作
Mar 28 Python
python实现写数字文件名的递增保存文件方法
Oct 25 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 Python
python树的同构学习笔记
Sep 14 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
Sep 28 Python
python opencv实现信用卡的数字识别
Jan 12 Python
python3 字符串知识点学习笔记
Feb 08 Python
Python基于os.environ从windows获取环境变量
Jun 09 Python
Python实现列表索引批量删除的5种方法
Nov 16 Python
python 实现IP子网计算
Feb 18 Python
Python实现求解一元二次方程的方法示例
Jun 20 #Python
python实现NB-IoT模块远程控制
Jun 20 #Python
Python中pandas模块DataFrame创建方法示例
Jun 20 #Python
python自动发送邮件脚本
Jun 20 #Python
Python使用numpy模块创建数组操作示例
Jun 20 #Python
python实现自动发送邮件
Jun 20 #Python
Django实现登录随机验证码的示例代码
Jun 20 #Python
You might like
PHP实现文件安全下载
2006/10/09 PHP
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
js数组操作常用方法
2014/05/08 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
基于jQuery实现自动轮播旋转木马特效
2015/11/02 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
2016/08/08 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
基于Three.js实现360度全景图片
2018/12/30 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
vue移动端的左右滑动事件详解
2020/06/17 Javascript
ant design pro中可控的筛选和排序实例
2020/11/17 Javascript
深入理解NumPy简明教程---数组2
2016/12/17 Python
Python实现判断一个整数是否为回文数算法示例
2019/03/02 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
python接口自动化框架实战
2020/12/23 Python
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
太太口服液广告词
2014/03/20 职场文书
亲属关系公证书
2014/04/08 职场文书
教师个人自我评价范文
2014/04/13 职场文书
创意婚礼策划方案
2014/05/18 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
个人查摆剖析材料
2014/10/16 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL