美文网首页Python程序界Python
Python黑科技:在家远程遥控公司电脑,python+微信一键

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

作者: 妄心xyx | 来源:发表于2019-02-23 14:40 被阅读453次
    Python黑科技:在家远程遥控公司电脑,python+微信一键连接!

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

    准备工作

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

    1. 在 Windows机器的相同内网中放一个 Linux 主机,我这里用树莓派代替,如果你是用 OpenWrt 之类的路由器也可以。
    2. Linux 主机需要能够远程访问,我这里是有 FRP 将树莓派的端口映射到我的公网 Linux 主机上。所以可以随时远程 SSH 过去。
    3. Windows 机器的网卡必须是有线连接,支持网络唤醒功能。

    开机实现思路

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

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

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

    例如 ping 百度:

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

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

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

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

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

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

    关机部分实现

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

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

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

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

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

    使用 TeamViewer 连接:

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

    缺点

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

    源代码地址加群:700341555即可免费获取+python学习资料!

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

    相关文章

      网友评论

        本文标题:Python黑科技:在家远程遥控公司电脑,python+微信一键

        本文链接:https://www.haomeiwen.com/subject/jskpyqtx.html