網(wǎng)絡(luò)喚醒技術(shù)(Wake-on-LAN,WOL)

發(fā)送魔術(shù)包

  1. 將喚醒魔術(shù)包發(fā)送到被喚醒機(jī)器的網(wǎng)卡上,魔術(shù)包指AMD公司開發(fā)的喚醒數(shù)據(jù)包,具有遠(yuǎn)程喚醒的網(wǎng)卡都支持這個(gè)標(biāo)準(zhǔn),用16進(jìn)制表示如下:
    6對(duì)“FF”前綴+16次重復(fù)MAC地址組成
  1. 無(wú)線喚醒(Wake-on-Wireless-LAN,WoWLAN)作為 WOL 的補(bǔ)充技術(shù),使用無(wú)線網(wǎng)卡去喚醒計(jì)算機(jī),但是需要無(wú)線網(wǎng)卡支持。
  1. 在局域網(wǎng)外喚醒局域網(wǎng)內(nèi)特定計(jì)算機(jī),可以使用路由器的 DNS 與端口轉(zhuǎn)發(fā)
  1. 有時(shí)魔術(shù)包內(nèi)還會(huì)緊接著4-6字節(jié)的密碼信息。這個(gè)幀片段可以包含在任何協(xié)議中,最常見的是包含在 UDP 中
    FF FF FF FF FF FF FF 被喚醒端MAC 地址 × 16 4-6字節(jié)的密碼(可空)
  1. 被喚醒端網(wǎng)卡需要配置
    bios模式下打開wakeup by pci PCI Express Power management類似選項(xiàng)
    網(wǎng)卡配置中電源管理選項(xiàng)卡中勾選允許此設(shè)備喚醒計(jì)算機(jī)
  1. 使用python發(fā)包腳本構(gòu)建udp魔術(shù)數(shù)據(jù)包發(fā)送,局域網(wǎng)環(huán)境可實(shí)現(xiàn)下成功喚醒有線網(wǎng)卡主機(jī)。

Code

python 需要pip3 install scapy

#!/usr/bin/python
#-- coding: utf-8 --
#author: Zbertj
from scapy.all import *


padding = "000000000000"
data = []

mac_pc2 = [0x3C,0x97,0x0E,0x07,0x4B,0x27]

for i in range(6):
    data.append(0xff)
for n in range(16):
    for a in mac_pc2:
        data.append(a)

print(data)
b = bytes(data)
print(b)
# 數(shù)據(jù)包應(yīng)用層數(shù)據(jù)部分

# 發(fā)送端IP地址10.0.3.83不是本機(jī)ip地址   目的端IP地址不詳      傳輸層的TCP并未指明數(shù)據(jù)包類型:syn fin ack 窗口大小 數(shù)據(jù)包如果分片,要指明序號(hào)
# SRC 192.168.8.239    172.16.100.97
# DST 192.168.8.248    172.16.100.77
pkt = IP(src='192.168.8.239', dst='172.16.100.77') / UDP(sport=12345, dport=9) / b
while True:
    send(pkt, inter=5, count=5)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容