#!/usr/bin/env python
# wol.py
import socket
import struct
def wake_on_lan(macaddress):
""" Switches on remote computers using WOL. """
# Check macaddress format and try to compensate.
if len(macaddress) == 12:
pass
elif len(macaddress) == 12 + 5:
sep = macaddress[2]
macaddress = macaddress.replace(sep, '')
else:
raise ValueError('Incorrect MAC address format')
# Pad the synchronization stream.
data = ''.join(['FFFFFFFFFFFF', macaddress * 20])
send_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)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.sendto(send_data, ('<broadcast>', 7))
if __name__ == '__main__':
# Use macaddresses with any seperators.
wake_on_lan('0F:0F:DF:0F:BF:EF')
wake_on_lan('0F-0F-DF-0F-BF-EF')
# or without any seperators.
wake_on_lan('0F0FDF0FBFEF')
原文:http://code.activestate.com/recipes/358449-wake-on-lan/
PS:魔术包的格式,包含有连续6个字节的“FF”和连续重复16次的MAC地址。你可以在任何协议的数据包(如在TCP/IP、IPX包)中填上 "FFFFFFFFFFFF"+连续重复16次的MAC地址,就可利用该协议作出一个使用该协议的MagicPacket。只要NIC检测到数据包中任何地方有这样的片段,便会将计算机唤醒。
分享到:
相关推荐
Finding a File on the Python Search Path Recipe 2.21. Dynamically Changing the PythonSearch Path Recipe 2.22. Computing the Relative Path from One Directory to Another Recipe 2.23. Reading an ...
"Python库 | recipe_scrapers-10.1.0.tar.gz" 是一个针对Python开发者的资源,它包含了名为 `recipe_scrapers` 的库,版本号为10.1.0。这个库是一个用于抓取食谱网站数据的工具,帮助开发者轻松地从互联网上获取食谱...
标题中的“Python库 | git-recipe-0.2.7.tar.gz”指的是一个与Python相关的库,名为“git-recipe”,版本号为0.2.7,并且它被压缩成一个tar.gz文件进行分发。这种格式是Unix/Linux环境中常用的压缩方式,用于归档和...
资源分类:Python库 所属语言:Python 资源全名:recipe-0.30.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
本文将深入探讨`as.recipe.filetemplate-2.2.0-py2.7.egg`这个特定的Python库,它主要用于构建和管理文件模板。这个库的名字表明它是`as`组织的一部分,并且是`recipe`系列的一个组件,专注于处理`filetemplate`。...
`recipe_searchers-0.0.6-py3-none-any.whl` 是一个Python库的压缩包,专为处理与食谱搜索相关的问题而设计。这个版本号`0.0.6`表明这是该库的第六次更新,`py3-none-any`表示它适用于Python 3版本,不依赖于特定的...
资源分类:Python库 所属语言:Python 资源全名:djc.recipe2-2.1.zip 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
标题中的"Python库 | appfy.recipe.gae-0.7.1.zip"指的是一个特定版本(0.7.1)的Python库,名为`appfy.recipe.gae`。这个库是专门为Google App Engine (GAE)开发的,GAE是一个云服务平台,允许开发者构建和运行Web...
Python库`recipe_scrapers-13.6.0-py3-none-any.whl`是一个专为Python开发者设计的工具,主要用于从网络上抓取食谱网站的数据。这个库可以帮助开发者方便地获取食谱的详细信息,如食材、步骤、烹饪时间等,从而构建...
标题中的"Python库 | gp.recipe.pip-0.5.3.tar.gz"指的是一个特定版本的Python库,名为`gp.recipe.pip`,版本号为0.5.3,其源代码以tar.gz格式的压缩包形式提供。这种类型的文件在Python开发中常见,通常用于分发和...
资源分类:Python库 所属语言:Python 资源全名:whtc.recipe.configmanager-1.1.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
`zc.recipe.testrunner` 是一个Python的测试运行器库,主要设计用于持续集成环境,它提供了灵活的方式来配置和运行Python的测试套件。这个库的名字来源于它的开发者组织 `zc`(Zope Community)以及它提供的功能,即...
《Python库:深入理解plone.recipe.unifiedinstaller》 在Python的世界里,库是开发者们构建强大应用的基础。本文将详细探讨一个特定的Python库——`plone.recipe.unifiedinstaller`,版本为0.6b6,适用于Python ...
`recipe_scrapers-13.11.0-py3-none-any.whl` 是一个针对Python开发者的库,主要用于从互联网上抓取食谱网站的数据。这个库的名字揭示了它的核心功能——`recipe_scrapers`,它设计用于自动化地从各种在线食谱平台...
标题中的"Python库 | zerokspot.recipe.git-0.5.1.tar.gz"指的是一个Python开发的库,名为`zerokspot.recipe.git`,版本号为0.5.1,其源代码被压缩在`.tar.gz`文件中。这种格式通常是Linux或Unix系统中常用的归档和...
recipe-scrapers, 用于抓取配方数据的python 包 配方刮削器 一个简单的网络擦洗工具,用于我在我的工程中使用的菜谱工具,这是一个。 不支持 python 2. pip install git git://github.com/hhursev/recipe-scraper
在给定的资源"Python库 | anybox.recipe.odoo-1.9.1.tar.gz"中,我们关注的是一个特定的Python库——`anybox.recipe.odoo`,版本为1.9.1。 `anybox.recipe.odoo`是一个用于构建和部署Odoo(原OpenERP)应用的...
《Python库anybox.recipe.openerp-1.6.3详解》 在Python的世界里,丰富的库资源是其强大功能的重要支撑。今天我们要探讨的是一个名为`anybox.recipe.openerp`的Python库,它的版本号为1.6.3,以`.tar.gz`格式的...
资源分类:Python库 所属语言:Python 资源全名:recipe-0.12.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
《Python库:深入理解plone.recipe.zope2install》 在Python的世界里,库是开发者的重要工具,它们提供了丰富的功能,让开发工作更加高效。本文将深入探讨`plone.recipe.zope2install`这一特定库,它在Python的开发...