天天看點

使用樹莓派實作遠端開機

我使用的工具

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筆記本自己就開機了