`
chembo
  • 浏览: 933965 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Wake on Lan (Python recipe)

阅读更多
#!/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检测到数据包中任何地方有这样的片段,便会将计算机唤醒。
分享到:
评论

相关推荐

    Python Cookbook, 2nd Edition

    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.tar.gz" 是一个针对Python开发者的资源,它包含了名为 `recipe_scrapers` 的库,版本号为10.1.0。这个库是一个用于抓取食谱网站数据的工具,帮助开发者轻松地从互联网上获取食谱...

    Python库 | git-recipe-0.2.7.tar.gz

    标题中的“Python库 | git-recipe-0.2.7.tar.gz”指的是一个与Python相关的库,名为“git-recipe”,版本号为0.2.7,并且它被压缩成一个tar.gz文件进行分发。这种格式是Unix/Linux环境中常用的压缩方式,用于归档和...

    Python库 | recipe-0.30.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:recipe-0.30.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | as.recipe.filetemplate-2.2.0-py2.7.egg

    本文将深入探讨`as.recipe.filetemplate-2.2.0-py2.7.egg`这个特定的Python库,它主要用于构建和管理文件模板。这个库的名字表明它是`as`组织的一部分,并且是`recipe`系列的一个组件,专注于处理`filetemplate`。...

    Python库 | recipe_searchers-0.0.6-py3-none-any.whl

    `recipe_searchers-0.0.6-py3-none-any.whl` 是一个Python库的压缩包,专为处理与食谱搜索相关的问题而设计。这个版本号`0.0.6`表明这是该库的第六次更新,`py3-none-any`表示它适用于Python 3版本,不依赖于特定的...

    Python库 | djc.recipe2-2.1.zip

    资源分类:Python库 所属语言:Python 资源全名:djc.recipe2-2.1.zip 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | appfy.recipe.gae-0.7.1.zip

    标题中的"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库`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库,名为`gp.recipe.pip`,版本号为0.5.3,其源代码以tar.gz格式的压缩包形式提供。这种类型的文件在Python开发中常见,通常用于分发和...

    Python库 | whtc.recipe.configmanager-1.1.2.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:whtc.recipe.configmanager-1.1.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库zc.recipe.testrunner-1.0.0b6-py2.4.egg

    `zc.recipe.testrunner` 是一个Python的测试运行器库,主要设计用于持续集成环境,它提供了灵活的方式来配置和运行Python的测试套件。这个库的名字来源于它的开发者组织 `zc`(Zope Community)以及它提供的功能,即...

    Python库 | plone.recipe.unifiedinstaller-0.6b6-py2.4.egg

    《Python库:深入理解plone.recipe.unifiedinstaller》 在Python的世界里,库是开发者们构建强大应用的基础。本文将详细探讨一个特定的Python库——`plone.recipe.unifiedinstaller`,版本为0.6b6,适用于Python ...

    Python库 | recipe_scrapers-13.11.0-py3-none-any.whl

    `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"指的是一个Python开发的库,名为`zerokspot.recipe.git`,版本号为0.5.1,其源代码被压缩在`.tar.gz`文件中。这种格式通常是Linux或Unix系统中常用的归档和...

    recipe-scrapers, 用于抓取配方数据的python 包.zip

    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.tar.gz"中,我们关注的是一个特定的Python库——`anybox.recipe.odoo`,版本为1.9.1。 `anybox.recipe.odoo`是一个用于构建和部署Odoo(原OpenERP)应用的...

    Python库 | anybox.recipe.openerp-1.6.3.tar.gz

    《Python库anybox.recipe.openerp-1.6.3详解》 在Python的世界里,丰富的库资源是其强大功能的重要支撑。今天我们要探讨的是一个名为`anybox.recipe.openerp`的Python库,它的版本号为1.6.3,以`.tar.gz`格式的...

    Python库 | recipe-0.12.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:recipe-0.12.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | plone.recipe.zope2install-1.1-py2.4.egg

    《Python库:深入理解plone.recipe.zope2install》 在Python的世界里,库是开发者的重要工具,它们提供了丰富的功能,让开发工作更加高效。本文将深入探讨`plone.recipe.zope2install`这一特定库,它在Python的开发...

Global site tag (gtag.js) - Google Analytics