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

准备工作

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

  1. 在 Windows机器的相同内网中放一个 Linux 主机,我这里用树莓派代替,如果你是用 OpenWrt 之类的路由器也可以。
  2. Linux 主机需要能够远程访问,我这里是有 FRP 将树莓派的端口映射到我的公网 Linux 主机上。所以可以随时远程 SSH 过去。
  3. 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 则简单多了:

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

欢迎大家加入小编创建的Python行业交流群,有大牛答疑,有资源共享,有企业招人!是一个非常不错的交流基地!群号:683380553

使用 TeamViewer 连接:

缺点

  1. 网页端微信必须一直登录,不方便,这个就需要微信不能断网了。
  2. WakeOnLan 是广播 MAC 地址的,貌似不能返回是否成功没,所以还是要 ping 主机看看通不通,判断下。
  3. 需要一个树莓派做跳板机,否则也不能唤醒内网设备。
  4. 如果只允许自己控制最好是使用文件助手来发送消息,因为默认情况下,任何人都可以给你发送指令开机。
  5. Windows需要安装TeamViewer并且设置为开机自动启动以及绑定账号设置无人值守模式。这样方便远程,如果是Linux 则不需要开启 ssh 就可以了。

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

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

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

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

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

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

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

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

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

  5. 在家想远程公司电脑?Python +微信一键连接

    作者 | 阿文 转载自 CSDN(ID:CSDNnews) 有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器. 准备工 ...

  6. 在家想远程公司电脑?Python + 微信一键连接!

    作者 | 阿文 责编 | 伍杏玲 有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器. 快速挑战Python全栈工程师: ...

  7. python远程安装软件_在家想远程公司电脑?Python + 微信一键连接!

    作者 | 阿文 责编 | 伍杏玲 有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器. 准备工作 本程序主要是实现远程管 ...

  8. 在家想远程公司电脑?Python+微信一键连接!

    作者 | 阿文 责编 | 伍杏玲 有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器. 准备工作 本程序主要是实现远程管 ...

  9. 系统黑科技之流氓软件免疫让电脑像免疫新冠一样免疫流氓软件

    咱们今天来聊聊最近我们最关心的话题.猜猜是什么?估计没人猜对哈.我们最近最关心的话题是新!冠!病!毒!谁敢说不是?说到这个新冠啊,真是谈毒色变.不过现在我们已经可以接种新冠疫苗了.感谢咱们伟大的祖国让 ...

最新文章

  1. showModalDialog 页面上GridView的分页问题
  2. Sonata 0.7
  3. 浙江绿盟科技2011.10.14校园招聘会笔试题
  4. [PHP] 多表外连接性能测试及优化
  5. gnu2和gnu3区别_GNU,生日快乐:为什么35年后我仍然爱GNU
  6. python模块调用模块_Python模块调用
  7. 喜提 300w 硬核资产!
  8. iOS textView设置一个直角三个圆角边框效果
  9. 易宝支付(Java实现)
  10. 最简单的WIN7内核PE系统
  11. 网络中的“大禹”—防水墙是怎么工作的?
  12. [Irving] Android 点击两次返回退出系统
  13. 【路径规划】基于遗传算法求解多式联运运输问题matlab源码
  14. Vanishing Point Constrained Lane DetectionWith a Stereo Camera (IEEE 2017)
  15. python把txt导入excel_python如何将txt文件导入excel
  16. Mysql 与 python 的使用
  17. 鸿蒙系统内核为什么还是安卓,鸿蒙系统和安卓的区别
  18. React-signature-phone 移动端电子签名
  19. C# WPF 建立无边框(标题栏)的登录窗口
  20. 数据库实验二之数据查询

热门文章

  1. php点击验证码,用PHP实现验证码功能
  2. 六、区块链主流共识算法浅析
  3. 现代软件工程讲义 5 项目经理 Program Manager
  4. 现代软件工程讲义 12 绩效管理
  5. java 小题目_java一个小题目
  6. php如何获取服务器时间_php如何获取当前日期
  7. java porm.xml_通过Maven仓库安装Spire.PDF for Java
  8. java将mysql数据写入到txt_java 追加写入数据到txt
  9. python背景颜色怎么随机_Python中的随机颜色
  10. 手机浏览器网址_「效率集」自定义网址导航高级功能介绍