有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器。

准备工作

本程序主要是实现远程管理 Windows10操作系统的开机和关机:

在 Windows机器的相同内网中放一个 Linux 主机,我这里用树莓派代替,如果你是用 OpenWrt 之类的路由器也可以。

Linux 主机需要能够远程访问,我这里是有 FRP 将树莓派的端口映射到我的公网 Linux 主机上。所以可以随时远程 SSH 过去。

Windows 机器的网卡必须是有线连接,支持网络唤醒功能。

开机实现思路

首先通过微信发送开机指令,这里我使用的是 itchat 程序会调用 Paramiko 库去 SSH 远程到内网的树莓派执行 WakeOnLan 命令去唤醒 Windows 主机。

程序会通过 ICMP 协议, ping 下需要唤醒的目标主机然后进行过滤,一个正常的 ICMP 包是64字节,过滤打印出这个64。

例如 ping 百度:

用一段 Linux 命令去过滤是否有64,这里为啥要用 head -n 1 呢?

因为有可能会出现2行,经过测试,我们只需要取64这个值就可以了:

如果有则表示开机成功已经联网了,返回开机成功,否则程序继续往下走,去唤醒,然后在 ping 一次确认是否开机,如果为是则返回开机成功,否则返回失败。程序执行成功后,在我的网站根目录创建一个 shutdown 文件,用于后面的关机操作:

关机部分实现

当接收关机指令时,程序会去删除网站根目录的 shutdown 文件,客户端我写了几行代码,去通过 Requests 库每隔30s 发送 HTTP head 请求去判断文件是否是404,如果是404 这说明文件不存在,调用系统关机操作,执行关机。

然后 SSH 到树莓派去 ping 目标主机,如果返回为空,则说明关机成功,否则关机失败。这只是针对 Windows 的关机,如果目标主机是 Linux 则简单多了:

客户端代码,写完扔计划任务,开机启动:

使用 TeamViewer 连接:

缺点

网页端微信必须一直登录,不方便,这个就需要微信不能断网了。

WakeOnLan 是广播 MAC 地址的,貌似不能返回是否成功没,所以还是要 ping 主机看看通不通,判断下。

需要一个树莓派做跳板机,否则也不能唤醒内网设备。

如果只允许自己控制最好是使用文件助手来发送消息,因为默认情况下,任何人都可以给你发送指令开机。

Windows需要安装TeamViewer并且设置为开机自动启动以及绑定账号设置无人值守模式。这样方便远程,如果是Linux 则不需要开启 ssh 就可以了。

python 远程控制电脑开机_Python黑科技:在家远程遥控公司电脑,python+微信一键连接!...相关推荐

  1. python 执行ping命令_Python黑科技:在家远程遥控公司电脑,python+微信一键连接!...

    有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器. 准备工作 本程序主要是实现远程管理 Windows10操作系统的开 ...

  2. 远程连接电脑_Python黑科技:在家远程遥控公司电脑,python+微信一键连接!

    有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器. 准备工作 本程序主要是实现远程管理 Windows10操作系统的开 ...

  3. 远程唤醒_Python黑科技:在家远程遥控公司电脑,python+微信一键连接!

    有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器. 准备工作 本程序主要是实现远程管理 Windows10操作系统的开 ...

  4. Python黑科技:在家远程遥控公司电脑,python+微信一键连接!

    有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器. *注意:全文代码可左右滑动查看 准备工作 本程序主要是实现远程管理 ...

  5. 怎样解决在家远程操控公司电脑

    很多个人或者中小型公司都会自建服务器,或者将自己内网的服务.应用发布到外网,实现异地访问,如:网站.公司的管理系统.管家婆.FTP.远程桌面.数据库.监控系统等等. 没有接触过的人可能会觉得这个是很高 ...

  6. python搭建视频网站_Python黑科技 | 一步一步教你如何搭建自己的视频聚合站

    前言 作为一个炉石传说玩家,经常有事没事开着直播网站看看大神们的精彩表演.不过因为各个平台互相挖人的关系,导致关注的一些主播分散到了各个直播平台,来回切换有点麻烦,所以萌生了做一个视频聚合站的想法. ...

  7. 计算机进入桌面黑屏怎么办,电脑开机后黑屏怎么办

    电脑开机黑屏进不了系统怎么办,这个情况是我们电脑能正常打开,但是电脑开机后运行系统时就出错了,要么出现蓝屏后者黑屏,然后电脑就定格在那里无法进入也无法操作.那么碰到这种情况我们该怎么办呢? 前期检查, ...

  8. 电脑可以开机但是黑屏_电脑开机后黑屏如何解决 电脑开机后黑屏解决方法【详解】...

    电脑开机,打开主机电源,电源灯亮了,显示器却是黑的,电脑开机后黑屏,没有任何显示或者有相似于无信号的提示.那么究竟是哪里出问题了呢?一般电脑开机后黑屏常见有以下几种情况: 1.显示器有问题,或者坏了 ...

  9. 机械师星辰15电脑开机一直黑屏怎么重装电脑系统?

    机械师星辰15电脑开机一直黑屏怎么重装电脑系统?如果电脑开机无法进入系统了,我们可以先到电脑的安全模式中尝试进行问题的修复.如果修复无效的话,那么还可以使用U盘重装系统的方法来进行电脑系统的重装.一起 ...

最新文章

  1. 发那科机器人示教器电缆线_云和发那科机器人维修
  2. 简单的总是好的,在这个复杂的世界: java simple log
  3. js 获取鼠标在画布的位置_使用faceapi.js轻松将面部识别添加到你的应用程序
  4. re:Invent解读:没想到你是这样的AWS
  5. c语言密码锁程序,急求C语言电子密码锁程序
  6. SpringBoot Redis缓存 @Cacheable、@CacheEvict、@CachePut
  7. jQuery点击图片弹出大图遮罩层
  8. codewars--js--Happy numbers++无穷大判断
  9. 打造 AI 语音新标杆,英特尔与腾讯云小微创新共赢
  10. 服务器上装双系统,服务器上安装双系统
  11. python类中的self参数和cls参数
  12. UI基础--烟花动画
  13. 《0202年了,还有人学 NFC!?》
  14. 用python解决搬砖问题_如何像要饭一般”用“python (一)(非编程类工作/科研搬砖工)...
  15. 通过DLL文件实现函数共有及通过调用_stdcall来减少程序文件的大小
  16. 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合
  17. antd 表单通过form.getFieldsValue获取不全tabs组件下表单数据的问题
  18. 建Kangle+EasyPanel对接SWAP IDC虚拟主机自助开通完整教程
  19. Microsoft Word 教程:如何在 Word 中插入表格?
  20. 代码打累了看看短腿基!

热门文章

  1. Java 使用Map集合 写出超市会员管理系统
  2. 计算机考证认证有哪些?
  3. vue项目列表跳转详情返回列表页保留搜索条件
  4. 可对前端打包器所构建的网站进行一键扫描的Packer Fuzzer
  5. 数值计算与计算机应用是核心吗,数值计算与计算机应用国家级计算机投稿
  6. 计算机不能执行exe文件格式,win7无法打开exe文件 .exe可执行文件无法打开怎么办...
  7. 买iPhone12首发还用抢?有钱就行!Python抢购脚本
  8. 脱单盲盒网页版源码及搭建教程,未知交友模式
  9. Unicode入门与剖析——从一个越南文的案例说起
  10. 2.CSS Transforms 三维 HTML新增属性