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 相关文章推荐
ptyhon实现sitemap生成示例
Mar 30 Python
Python中使用Boolean操作符做真值测试实例
Jan 30 Python
Python中的面向对象编程详解(上)
Apr 13 Python
Python 编码Basic Auth使用方法简单实例
May 25 Python
关于反爬虫的一些简单总结
Dec 13 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
Python读取系统文件夹内所有文件并统计数量的方法
Oct 23 Python
Python绘制频率分布直方图的示例
Jul 08 Python
Python基于正则表达式实现计算器功能
Jul 13 Python
Python爬虫实例——爬取美团美食数据
Jul 15 Python
Python 可视化神器Plotly详解
Dec 26 Python
详解解决jupyter不能使用pytorch的问题
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&mysql(三)
2006/10/09 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
简单实用的网站PHP缓存类实例
2014/07/18 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
jQuery Ajax之load()方法
2009/10/12 Javascript
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
Javascript继承机制的设计思想分享
2011/08/28 Javascript
JQuery获取或设置ckeditor的数据(示例代码)
2013/11/15 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
js实现动态增加文件域表单功能
2018/10/22 Javascript
vue项目中仿element-ui弹框效果的实例代码
2019/04/22 Javascript
浅谈vue权限管理实现及流程
2020/04/23 Javascript
详解vue中v-model和v-bind绑定数据的异同
2020/08/10 Javascript
js实现删除json中指定的元素
2020/09/22 Javascript
Python中操作mysql的pymysql模块详解
2016/09/13 Python
利用Python中的pandas库对cdn日志进行分析详解
2017/03/07 Python
在python带权重的列表中随机取值的方法
2019/01/23 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
python datetime处理时间小结
2020/04/16 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
HTML+CSS+JavaScript实现图片3D展览的示例代码
2020/10/12 HTML / CSS
优秀护士获奖感言
2014/02/20 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
爱牙日活动总结
2014/08/29 职场文书
2014企业年终工作总结
2014/12/23 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
创业计划书之便利店
2019/09/05 职场文书
小学生作文之《压岁钱的烦恼》
2019/09/27 职场文书
导游词之麻姑仙境
2019/11/18 职场文书
导游词之绍兴柯岩古镇
2020/01/09 职场文书
python小程序之飘落的银杏
2021/04/17 Python