#!/usr/bin/env python
# Wake on Lan
import socket
import struct
def wake_on_lan(mac):
""" Switches on remote computers using WOL. """
# Check mac format and try to compensate.
if len(mac) == 12:
pass
elif len(mac) == 12 + 5:
sep = mac[2]
mac = mac.replace(sep, '')
else:
raise ValueError('Incorrect MAC address format')
# Pad the synchronization stream.
data = ''.join(['FFFFFFFFFFFF', mac * 16])
send_data = ''
print data
# Split up the hex values and pack.
for i in range(0, len(data), 2):
send_data = ''.join([send_data, struct.pack('B', int(data[i: i + 2], 16))])
# Broadcast it to the LAN.
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 今天发现在某些机器上脚本能正常使用,有些机器却不行,经查发现有问题的机器都配有多个IP,那么在这种情况下,可以bind到特定网段上发包。
sock.bind(('192.168.102.250', 20000))
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(send_data, ('<broadcast>', 7))
if __name__ == '__main__':
# Use maces with any seperators.
wake_on_lan('00:1F:16:15:53:84')
wake_on_lan('00-1F-16-15-4D-CD')
wake_on_lan('00:22:68:1B:7A:82')
wake_on_lan('00:1B:38:02:D9:F4')
分享到:
相关推荐
先看下使用Python实现WakeOn Lan远程开机功能,具体介绍如下: 创建魔法唤醒包 格式化mac地址,生成魔法唤醒包,然后发送包,首先电脑需要打开wake on lan功能 创建main_wake_on_lan.py文件 import socket import...
【Python实现的网络远程开机工具】 网络远程开机,也称为Wake-on-LAN(WOL),是一种允许用户在计算机关闭或休眠状态下通过网络唤醒它的技术。这个功能在远程办公、远程维护或者需要从远处控制设备时非常实用。...
MicroPython作为一种轻量级的Python实现,专为微控制器设计,它使得开发者能够使用Python编程语言的简洁性来控制硬件,大大降低了嵌入式开发的门槛。 本资源包的标题为“Remote WOL MicroPython-硬件开发资源”,...
#### 五、Python实现细节 为了方便远程控制,可以编写一个简单的Python脚本来发送魔法数据包。以下是一些关键点: 1. **脚本结构**:使用标准库`socket`和`struct`来创建和发送UDP数据包。 2. **命令行参数**:通过`...
在Ubuntu系统中使用Python脚本实现WOL功能,需要确保电脑的网络适配器支持WOL,并且在BIOS或系统设置中已经启用了该功能。接下来,可以通过Python的socket库来构建发送魔术包的脚本。脚本的基本流程包括定义目标电脑...
通过Python的paramiko库可以实现SSH连接,而wolpy库则可以帮助我们发送WOL魔法包来唤醒远程设备。 2. **Selenium介绍**: Selenium是一个强大的自动化测试工具,但也可以用于网页数据抓取。它可以模拟浏览器行为,...