通过iphone的siri远程打开家里的电脑

需求来源

买了个30块钱破小机箱装配上了i3-12100F+二手1650s很般配,用了一段时间发现开机键偶尔开不了机,新主板不太可能会坏啊,拆出来用短接法果然秒开,排查结果就是破机箱电源开关坏了,网上一搜各种花里胡哨的开机键卖,虽然换上不难,但是不太优雅了,心想干脆用手机打开吧,使用板载网卡网络唤醒不就行了

实现方式

  1. 第一步当然是开启主板的网络唤醒功能,一般进入主板BIOS都有地方设置,不同品牌主板设置地方不太一样,需要自己百度搜搜。
  2. 第二步电脑关机尝试唤醒,这里你可以微信小程序搜索一下“网络唤醒”小程序,有些小程序可以输入电脑MAC地址在局域网内唤醒指定电脑,但是我没用过,因为打开微信找到小程序再去唤醒还是不够优雅
  3. 如果测试通过可以唤醒的话,就可以尝试其他唤醒方式,比如:如果你的路由器支持安装插件,或者本身有唤醒功能,那么可以直接用,但是我没用过,因为依旧不够优雅。。。
  4. 这里我我在网上搜索了一下网络唤醒的原理,其实就是给局域网广播一个数据包,具体可以自己搜索一下,于是写了以下Python脚本:
#!/usr/bin/python3
# -*- coding=utf8 -*-
import socket
import struct
import sys


def WOL(mac_address):
   if len(mac_address) == 12:
       pass
   elif len(mac_address) == 12 + 5:
       sep = mac_address[2]
       mac_address = mac_address.replace(sep, '')
   else:
       raise ValueError('Incorrect MAC address format')
   data = ''.join(['FFFFFFFFFFFF', mac_address * 16])
   send_data = b''
   for i in range(0, len(data), 2):
       byte_dat = struct.pack('B', int(data[i: i + 2], 16))
       send_data = send_data + byte_dat
   sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
   sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
   sock.sendto(send_data, ('192.168.5.255', 9))
   sock.close()

'''
   网络唤醒
'''
if __name__ == '__main__':
   mac = None
   if len(sys.argv) < 2:
       mac = 'D8:43:AE:76:0B:4C'
   else:
       mac = sys.argv[1]
   if mac is None:
       print("请传入MAC地址")
       exit()
   WOL(mac)

其中WOL函数是核心的唤醒代码,传局域网内mac地址,即可唤醒指定电脑,里面有个地址192.168.5.255,是我家的路由器的广播地址,如果你的路由器地址是192.168.1.1,那么广播地址应该是192.168.1.255,根据实际情况进行修改。入口函数支持传一个参数mac地址,当然也可以不传,我这里不传就用“D8:43:AE:76:0B:4C”,这是我家电脑的mac地址
好了,现在把这个脚本丢到路由器里直接执行就能唤醒电脑了,前提是路由器支持Python,但是这样做有什么好处呢,还不是通过路由器唤醒,这时就不得不提iphone上的一款神器:快捷指令,配置快捷指令如下:
在这里插入图片描述
选择了脚本-通过SSH运行脚本,填写了你路由器的ssh连接方式,我这里把路由器的ssh端口映射到了外网,并且做了DDNS绑定了域名,这样我就可以在外网随时打开家里电脑了,一般不太推荐这么搞,容易被攻击,我比较勇无所畏惧-_-
好了,现在可以用手机的快捷指令功能打开电脑了,快捷指令最大的好处是可以使用siri启动,现在我在任何地方都可以对手机说:hi siri 电脑开机,然后我的电脑就开机了,总算够优雅了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值