使用树莓派实现远程开机

我使用的工具

1. 树莓派2B

2. 14年Acer笔记本一台

操作步骤

1. 进笔记本BIOS设置,不同电脑进入BIOS方式不同,BIOS的页面也不同,找到并设置 WAKE ON LAN [Enable]

2. 在树莓派中创建一个wake_on_lan.py脚本,写入如下代码(main函数中的参数换成自己的环境参数):

import socket
import struct

def wake_on_lan(mac, broadcast_ip=None):
	if len(mac) == 17:
		mac = mac.replace(mac[2], '')
	if len(mac) != 12:
		raise ValueError("Invalid MAC address")
	
	data = 'FFFFFFFFFFFF%s' %(mac*16)
	magic_data = ''
	
	for i in range(0, len(data), 2):
		magic_data = ''.join([magic_data, struct.pack('B', int(data[i:i+2], 16))])
		
	sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
	sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
	
	if not broadcast_ip:
		broadcast_ip = '255.255.255.255'
		
#	sock.sendto(magic_data, (broadcast_ip, 0))
	sock.sendto(magic_data, (broadcast_ip, 7))
	sock.sendto(magic_data, (broadcast_ip, 9))
	
if __name__ == '__main__':
	#传入PC网卡的MAC
	wake_on_lan('C4:54:44:18:17:2E', '192.168.166.255')
	exit(0)
3. 笔记本插上网线,保持关机的状态,在树莓派上运行以上代码sudo python  wake_on_lan.py笔记本自己就开机了

你可能感兴趣的:(树莓派)