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中atexit模块的基本使用示例
Jul 08 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
python制作图片缩略图
Apr 30 Python
Python 数据可视化pyecharts的使用详解
Jun 26 Python
python格式化输出保留2位小数的实现方法
Jul 02 Python
解决python web项目意外关闭,但占用端口的问题
Dec 17 Python
python3 动态模块导入与全局变量使用实例
Dec 22 Python
Python中itertools的用法详解
Feb 07 Python
Python处理PDF与CDF实例
Feb 26 Python
通过python调用adb命令对App进行性能测试方式
Apr 23 Python
Python批量处理csv并保存过程解析
May 16 Python
教你用Python+selenium搭建自动化测试环境
Jun 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
Windows7下的php环境配置教程
2015/02/28 PHP
PHP中Array相关函数简介
2016/07/03 PHP
PHP实现的简单排列组合算法应用示例
2017/06/20 PHP
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
jquery中常用的SET和GET
2009/01/13 Javascript
JavaScript null和undefined区别分析
2009/10/14 Javascript
javascript截取字符串(通过substring实现并支持中英文混合)
2013/06/24 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
javascript弹出带文字信息的提示框效果
2016/07/19 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
Bootstrap BootstrapDialog使用详解
2017/02/17 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
浅谈mint-ui 填坑之路
2017/11/06 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
用实例说明python的*args和**kwargs用法
2013/11/01 Python
Python中内置的日志模块logging用法详解
2016/07/12 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
Python属性和内建属性实例解析
2020/01/14 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
网络信息安全承诺书
2014/03/26 职场文书
大学生活自我评价
2014/04/09 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
思想作风建设心得体会
2014/10/22 职场文书
毕业生党员个人总结
2015/02/14 职场文书
盲山观后感
2015/06/11 职场文书
求职自我评价参考范文
2019/05/16 职场文书
PHP命令行与定时任务
2021/04/01 PHP
教你nginx跳转配置的四种方式
2022/07/07 Servers