Skip to content

jvav-runtime-environment/remote-control

Repository files navigation

远程控制

说明

  • 使用socket实现客户端对服务端的控制,服务端和客户端需要运行在同一局域网内
  • 服务端应置于Windows系统,客户端可以置于任何可以运行python代码的设备
  • 程序目前实现了这些功能: 读取目录和文件,文件传输,cmd执行,创建目录,启动程序
  • 这个是学socket时拿来练手的程序,仍有不少缺陷

Warning

注意,这个程序的安全性 没有 经过验证,建议不要在不安全的网络中使用 (主要是流加密是自己写的简易实现方法,可能不安全)

介绍

  • chiper.py是一个流加密模块,先将内容转换为base64,然后用密码作为随机数种子打乱字符

  • connection.py是对socket的一层封装,主要用来一次性接收全部信息

  • filetransfer.py是用来传输文件的模块,基于connection.py

  • processbar.py是用来显示下载进度条的模块

  • client.py是客户端程序

  • server_resolver.py是用来解析和执行客户端命令的模块

  • server.py是服务端程序

  • update.py是更新时用来同步客户端的程序

使用

  • 服务端依赖:

    • server.py
      • server_resolver.py
      • connection.py
      • chiper.py
      • filetransfer.py
      • processbar.py
  • 客户端依赖:

    • client.py
      • connection.py
      • chiper.py
      • filetransfer.py
      • processbar.py
  1. 将服务端和客户端依赖的文件置于同一文件夹下
  2. 首次运行将会在目录下生成配置文件(server/client_config.json)
  3. 设置服务端和客户端的配置文件
    "key": "<你的连接密码>"
  1. 启动服务端 (运行server.pystartserver.bat都可以)
  2. 根据服务端控制台输出的IP填写客户端配置文件
    "ip": "<你服务端的IP>"
  1. 启动客户端,等待连接

可用命令

  • msg:向服务端发送一个消息
  • cd:切换路径
  • ls:列出目录下的文件和文件夹
  • cmd:执行cmd命令
  • get:从服务端下载文件
  • send:向服务端发送文件
  • back:回到上一级目录
  • update:从服务端文件夹更新客户端
  • run:在服务端上运行一个程序
  • mkd:在当前目录下创建文件夹

计划

  • 加入数据包头验证
  • 线程化

About

基于socket的远程控制

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published