背景

毕竟网络靠不住,原本打算通电自启动的。
还有一个是网络自启动是需要有线网络连接的。不然关机怎么可能有网络连接,咋自启动?

坑点

我搜了很多“[我的品牌型号] + 通电自启动”,很多个回答,教我怎么做——没用。因为都是复制粘贴的答案。
一开始我进BIOS,只是发现和百度的教程不一样,因为BIOS系统都不一样。当时只是以为可能复制粘贴也没太大问题,能理解教程里面的设置顺序和逻辑即可。
不是的,我在我的BIOS里面找了很久,最后又搜了好一阵,才发现——我的型号就根本不支持通电启动:
image.png
image.png

一开始就是错的

我都已经买了智能插座了😡😡😡不只是浪费时间啊,我是花了钱的😡😡😡
然后又搜了很久的设置WOL自启动的,其实也没正经的正确答案。但是好歹自己是电脑人,理解原理完也是花了点功夫才设置好。

备选方案

image.png

工具

在线

Depicus - Wake on Lan Over The Interweb

Python

wakeonlan

脚本

  1. #!/usr/bin/env python
  2. # coding=utf-8
  3. import socket
  4. import sys
  5. def to_hex_int( s ):
  6. return int( s.upper() , 16 )
  7. dest = ('192.168.1.255' , 9)
  8. if len( sys.argv ) < 2:
  9. print( "usage: %s <MAC Address to wakeup>" % sys.argv[0] )
  10. sys.exit()
  11. mac = sys.argv[1]
  12. spliter = ""
  13. if mac.count( ":" ) == 5: spliter = ":"
  14. if mac.count( "-" ) == 5: spliter = "-"
  15. if spliter == "":
  16. print( "MAC address should be like XX:XX:XX:XX:XX:XX / XX-XX-XX-XX-XX-XX" )
  17. sys.exit()
  18. parts = mac.split( spliter )
  19. a1 = to_hex_int( parts[0] )
  20. a2 = to_hex_int( parts[1] )
  21. a3 = to_hex_int( parts[2] )
  22. a4 = to_hex_int( parts[3] )
  23. a5 = to_hex_int( parts[4] )
  24. a6 = to_hex_int( parts[5] )
  25. addr = [a1 , a2 , a3 , a4 , a5 , a6]
  26. packet = chr( 255 ) + chr( 255 ) + chr( 255 ) + chr( 255 ) + chr( 255 ) + chr( 255 )
  27. for n in range( 0 , 16 ):
  28. for a in addr:
  29. packet = packet + chr( a )
  30. packet = packet + chr( 0 ) + chr( 0 ) + chr( 0 ) + chr( 0 ) + chr( 0 ) + chr( 0 )
  31. s = socket.socket( socket.AF_INET , socket.SOCK_DGRAM )
  32. s.setsockopt( socket.SOL_SOCKET , socket.SO_BROADCAST , 1 )
  33. s.sendto( packet , dest )
  34. print( "WOL packet %d bytes sent !" % len( packet ) )

执行代码

  1. # 使用方法为命令行下执行(linux/Mac可以不需要写命令最开始的python)
  2. python ./wol.py 01:02:03:04:05:06

参考

wyouzhi@yyds - 【超详细】Windows设置远程唤醒WOL+远程连接(远程开机)