使用Python實現Wake On Lan遠端開機

2022-09-20 19:06:12 字數 2136 閱讀 9565

在a主機上執行python**,喚醒b主機,讓b主機開機,以下內容和**親測可用

需要在b主機上進行以下設定。

1,啟用網絡卡的喚醒功能。

可以在 cmd 或 powershell 中使用 powercfg /a 命令查詢目前系統上所有可用的、硬體可支援的「睡眠」策略:

不啟用快速開機是關鍵

a主機上執行下面的python**就可以遠端喚醒b主機。

python傳送網路喚醒的**如下:

需要修改的只有下面的mac 位址發廣播的區域網廣播位址

wake_up(mac='cc-33-55-66-aa-21'):    這裡的 「cc-33-55-66-aa-21」 是b主機的mac位址。

broadcast = "192.168.31.255"  這裡是區域網發廣播的位址。

import

socket

import

time

import

struct

def wake_up(mac='

cc-33-55-66-aa-21'):

mac =mac

broadcast = "

192.168.31.255

"if len(mac) != 17:

raise valueerror("

mac address should be set as form 'xx-xx-xx-xx-xx-xx'")

mac_address = mac.replace("

-", ''

) data = ''.join(['

ffffffffffff

', mac_address * 20]) #

構造原始資料格式

send_data = b''

#把原始資料轉換為16進製制位元組陣列,

for i in range(0, len(data), 2):

send_data = b''.join([send_data, struct.pack('

b', int(data[i: i + 2], 16))])

#print(send_data)

#通過socket廣播出去,為避免失敗,間隔廣播三次

try:

sock =socket.socket(socket.af_inet, socket.sock_dgram)

sock.setsockopt(socket.sol_socket, socket.so_broadcast, 1)

sock.sendto(send_data, (broadcast, 7))

time.sleep(1)

sock.sendto(send_data, (broadcast, 7))

time.sleep(1)

sock.sendto(send_data, (broadcast, 7))

print("

done")

except

exception as e:

print

(e)wake_up()

python使用peewee實現mysql資料操作

peewee可用class來建立表,增刪改查,應該是相對餘單錶 本人幾乎沒用過,自以為如此 想實現sql查詢,得到list,比如這樣的結果 但是查詢結果是全是資料 元組 且找不到列名,後dir後逐個嘗試發現列名可以使用result.description j 0 獲取 元組使用起來不方便,現實現將資...

使用python實現簡單爬蟲

近日學習了python語言,簡單實現了乙個爬蟲,爬取了慕課網課程簡介上的,並儲存到本地。以下是實驗 coding utf 8 spyder editor import re import os import urllib.request 在python3.6環境中實現 f soure urllib....

使用python實現簡單爬蟲

因為工作上對於資料的需要,所以這段時間一直在學習python和scrapy框架,下面貼上乙個簡單的python 爬蟲,可能 風格有點low,見諒。coding utf 8 import codecs import urllib import urllib2 import re import json...