网络唤醒技术(Wake-on-LAN,WOL)

发送魔术包

  1. 将唤醒魔术包发送到被唤醒机器的网卡上,魔术包指AMD公司开发的唤醒数据包,具有远程唤醒的网卡都支持这个标准,用16进制表示如下:
    6对“FF”前缀+16次重复MAC地址组成
  1. 无线唤醒(Wake-on-Wireless-LAN,WoWLAN)作为 WOL 的补充技术,使用无线网卡去唤醒计算机,但是需要无线网卡支持。
  1. 在局域网外唤醒局域网内特定计算机,可以使用路由器的 DNS 与端口转发
  1. 有时魔术包内还会紧接着4-6字节的密码信息。这个帧片段可以包含在任何协议中,最常见的是包含在 UDP 中
    FF FF FF FF FF FF FF 被唤醒端MAC 地址 × 16 4-6字节的密码(可空)
  1. 被唤醒端网卡需要配置
    bios模式下打开wakeup by pci PCI Express Power management类似选项
    网卡配置中电源管理选项卡中勾选允许此设备唤醒计算机
  1. 使用python发包脚本构建udp魔术数据包发送,局域网环境可实现下成功唤醒有线网卡主机。

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)
# 数据包应用层数据部分

# 发送端IP地址10.0.3.83不是本机ip地址   目的端IP地址不详      传输层的TCP并未指明数据包类型:syn fin ack 窗口大小 数据包如果分片,要指明序号
# 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)

你可能感兴趣的:(网络唤醒技术(Wake-on-LAN,WOL))