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

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

准备工作

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

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

开机实现思路

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

7d6ac92884963ea05460773b662922de.webp

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

例如 ping 百度:

7debb375fa6fc842744558223e6764dd.png

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

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

c7e41de8c899dcd5b3c4e49e28f252e0.png

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

db7e986d8f65cd48daf64451e86e7753.png

cc8582d2effda3516f6de908b751c960.png

关机部分实现

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

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

e78cd30cf959c14ca1b360736197f9d0.png

8166a14f6070add2cd24c7507f21457d.png

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

eb73a88b6f2e819bc1412dc8304c5a9c.png

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

使用 TeamViewer 连接:

1b7da03f433090d989c58d60072a97ff.png

缺点

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql count 优化索引_如何通过使用索引在InnoDB上优化COUNT(*)性能

我有一个小而狭窄的InnoDB表,大约有900万条记录。在桌子上count(*)或count(id)桌子上做的速度非常慢(超过6秒):DROP TABLE IF EXISTS perf2;CREATE TABLE perf2 (id int(11) NOT NULL AUTO_INCREMENT,channel_id int(11) DEFAULT NULL,timestamp bigint(…

ppt生成器_9款魔性#傻瓜生成器#,上班可以划水一天

有些 #傻瓜生成器#,表面上叫傻瓜,实际上一玩就停不下来。不分享出来,未免不近人情。毕竟,大伙上班累了,也需要一些奇怪的东西划划水不是?1 沙雕DIY跳舞生成器这款傻瓜生成器,真不能叫傻瓜&#…

vue组件prop变量和内部变量数据格式不一样时,变量同步prop值,变量改变通知父组件.

vue组件含有v-model的props,当对其进行封装,想对该属性进行双向绑定时,可以采用computed的方式包一层get(){return props.xxx},set(v)>{emit(update:xxx,v)},或者使用vueuse的useModel来深层代理,但是只适合要封装的组件prop的内部的变量数据类型一致,不一致就只能拆开写,通…

mysql移动文件后打不开_Windows端MySQL data目录迁移(貌似会启动不了)

遇到一个现场问题,实施人员把mysql的data放在C盘,用过一阵以后C盘快满了。于是准备做数据迁移,想到如下几种方案(均需要先把mysql服务停掉):1.转储SQL文件但是问题是,想要迁移的库占了1.5T,是T啊&#xff0…

302 found是什么意思_犯罪大师心中的恶魔答案是什么 心中的恶魔答案真相分析...

犯罪大师是今年很热门的一个破案题材的游戏,游戏中有很多匪夷所思的案件,需要玩家解答,游戏中经常更新一些突发案件,最新的突发案件是心中的恶魔是一个很不错的案件,那么到底要怎么才能找到正确的凶手呢?希…

mysql源码安装报错_mysql 的二进制和源码包 安装的报错总结

MySQL报错总结报错原因:/application/mysql-5.6.44/tmp不存在解决方法:mkdir /application/mysql-5.6.44/tmp报错原因: /application/mysql-5.6.44/存放socket 目录没有权限解决方法:chown -R mysql.mysql /application/mysql-5.6…

hao123电脑版主页_建议Lenovo用户卸载监守自盗的联想电脑管家

最近我一直很迷惑,作为一个不用笔记本电脑上xxxxhub/2048等奇妙平台的正经大学生,为什么时而会出现辣鸡页游广告弹窗?好吧,最后我耐心等待,终于在某次弹出垃圾广告的时候定位了这个进程——AdvPopForm.exe在“wprst”的…

mysql 自增 不是主键_程序员经典面试题,MySQL自增主键为什么不连续

在我们日常使用Mysql中,如果不是特殊的业务需要,一般我们都会使用自增主键,自增主键的好处可以在插入的时候尽量地减少页分割,增加Mysql的写入效率。我们有时候就会发现,自增主键并不是连续递增的,为什么有…

怎么彻底重装清空电脑_电脑开不了机怎么重装系统?不用送去维修店啦!

小白系统免费的人工客服点击联系电脑无法启动的时候怎么办呢?很多朋友直接送去电脑城了,但是去一次就如同在百度上查询自己得了什么病是一样的,查一下自己不舒服就癌症了,电脑城查一下就问你卖多少钱,费时费力&#xf…

安装mysql无法登录_【windows 下安装 mysql-server 无法登录问题解决】

----------------------------- 无感的首行 -----------------------------新版 mysql-server 5.7 安装后发现无法使用 mysql -uroot (-p) 来登录,查了下文档发现新版在安装时会初始化一个密码放在启动的错误文件里,错误文件的路径 %mysql-server-dir%da…

日语输入法电脑版_日语轻松入门小百科

如果你一直以来都对日语抱有强烈的兴趣,那么就赶紧跟我一起轻松入门吧~科普之一:日语五十音图什么是假名?什么是五十音图?日语的字母叫做假名,每个假名代表一个音节。假名有两种书写方式,即平假名和片假名&…

jta mysql_JTA 使用 MySQL 分布式事务

假定在MySQL实例1上有表create table person(id int,name varchar(32))MySQL实例2上也有一张同样的表,现在从实例1中的 person 表中删除一条数据,并把这条数据插入到实例2的表中,这两个操作在同一个事务中,因为跨越了数据库实例&a…

mysql load average_紧急求助:load average太高了!!

站点同时在线人数300人左右,top出来的load average超过4,有时达到了8点多!sleeping进程达到了三百多!大部分是来自apache,导致房问速度很慢!!不知问题出在哪里,请高手赐教,谢谢&…

a jni error has occurred_A-08 幂函数、有理函数、代数函数

欢迎光临我的专栏《微积分学习之旅》,一起学习,共同提高。函数是微积分的基础,我们已经学习了直线函数和多项式函数,本篇中我们继续学习幂函数、有理函数和代数函数。幂函数(Power Functions)如果一个函数形…

mysql 求两列数据组合_mysql – 将两个具有不同列数的查询组合在一起

我有两个查询要组合成单个输出,我不能使用UNIOn,因为它们具有不同的列数.该表是ref,字段id为refid cellid cat,其中包含整数查询1:查找每个唯一cellid的总行数SELECT cellid,COUNT(*) totalcount,cat FROM rel GROUP BY cellid查询2:为每个唯一的cellid查…

echarts 浏览器兼容性_谷歌浏览器不再使用quot;黑名单quot; / iPhone可能放弃lightning充电口//微软中国被列为被执行人/QQ 音乐上线...

# 避免种族歧视 ,谷歌浏览器将不再使用"黑名单"6月9日报道,由于全球各地反对种族歧视的呼声高涨,谷歌决定修改Chrome浏览器中可能引发种族歧视联想的表述,包括“黑名单”、“白名单”等词。报道称,谷歌将通过…

python输出结果每5个换行_python for循环 - python基础入门(11)

文章首发微信公众号,微信搜索:猿说python在python开发中,除了前篇文章介绍的while循环还有一个for循环也经常使用,两者使用都是大同小异,for循环的使用相对于while循环更加灵活,下面我们一起来了解下具体区…

cad钣金展开插件_钣金折弯展开的计算方法汇总

提醒:点上方↑↑↑“钣金学习网”免费关注90度折弯折弯系数最简单的计算方法就属90度折弯系数经验公式:1.7倍料厚计算方法了。这个公式是怎么使用的?用在90钣金折弯加工中,一个直角弯减去1.7倍的料厚。比如:材料是1mm铁…