文档章节

远程开机脚本

libGod
 libGod
发布于 2015/01/24 09:12
字数 417
阅读 93
收藏 2

以前用笔记本都习惯不关机,这样在哪都能随时远程上去。现在换台式机不能那么干了,有点太浪费电。于是写了个脚本,需要用家里电脑时,随时远程开机,这样不用家里电脑一直开着,也挺方便。 本文来源于libGod官网 代码如下:

#!/usr/bin/env python
#coding=utf-8
# Created Time: 2015-01-23 16:23:02
# Modified Time: 2015-01-23 18:14:34
# Created By: Vic <vic@libgod.com>

from optparse import OptionParser
import socket
import struct

def wake(addr, mac):
    mac_data = []
    for i in range(0, 12, 2):
        mac_data.append(int(mac[i:i+2], 16))
    packet = struct.pack("!BBBBBB", 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
    packet_mac = struct.pack("!BBBBBB", *mac_data)
    for i in range(0, 16):
        packet += packet_mac
    #print "len: ", len(packet), "data: ", packet
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    try:
        s.sendto(packet, addr)
        print "唤醒数据包发送完成", addr, mac
    finally:
        s.close()

def main():
    usage = "%prog [options]"
    parser = OptionParser(usage = usage)
    parser.add_option("-a", "--addr", dest="addr", help="Boardcast address", metavar="255.255.255.255")
    parser.add_option("-p", "--port", dest="port", help="Port", metavar="7")
    parser.add_option("-m", "--mac", dest="mac", help="MAC address", metavar="FF-FF-FF-FF-FF-FF")
    (options, args) = parser.parse_args()
    if not options.mac:
        parser.print_help()
        return
    addr = "255.255.255.255"
    port = 7
    mac = options.mac.replace("-", "")
    if options.addr:
        addr = options.addr
    if len(mac) != 12:
        print "无效的MAC地址: %s" % options.mac
        return
    if options.port:
        port = int(options.port)
    wake((addr, port), mac)

if __name__ == "__main__":
    main()

脚本已经试验可用,如果你不能远程开机,可能是主板禁用了网络远程开机,需要改下BIOS设置,具体设置方法Google一下就有了。

© 著作权归作者所有

共有 人打赏支持
下一篇: LibGod官网
libGod

libGod

粉丝 5
博文 7
码字总数 2980
作品 3
浦东
高级程序员
私信 提问
远程开机脚本 wake_on_lan 发布

一款小巧的网络远程开机工具,如果你经常在公司远程家里的电脑,这款工具正适合你。 同一局域网内的使用示例:./wake_on_lan.py -m 12-34-56-78-90-AB 非同一局域网的使用示例:./wake_on_l...

libGod
2015/01/24
7.2K
48
远程开机工具--wake_on_lan

远程开机工具 一款小巧的网络远程开机工具,如果你经常在公司远程家里的电脑,这款工具正适合你。 介绍 同一局域网内的机器,只需指定目标主机的MAC地址,就令远程主机开机。 非同一局域网的...

libGod
2015/01/24
1K
0
Vic/wake_on_lan

远程开机工具 一款小巧的网络远程开机工具,如果你经常在公司远程家里的电脑,这款工具正适合你。 反馈 作者: Vic 邮箱: vic#libgod.com (replace # with @) 介绍 同一局域网内的机器,只需指...

Vic
2015/01/24
0
0
gtd您好,请教ubuntu下开机启动脚本的问题

@gtd 你好,想跟你请教个问题:我想在ubuntu下开机加载一个play2的项目,在终端运行的命令是这样的: #cd 目录 #bin/play 以上命令之后是输入“run”运行: >run 以上执行之后,项目就可以正...

adbug
2013/04/22
368
3
通过cmd脚本记录Windows远程桌面用户登录日志

@echo off if "%1" == "h" goto begin   mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit :begin set port=3389set checkInterval=2 set prev="" :lo......

zl1030
2017/05/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周三乱弹 —— 哽住

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @蓝瞳 :分享高橋広樹的单曲《銀河沿線'05<Vo>》:一直暗恋却无法表白的女孩在电车上疲倦不堪累得靠在他的肩上,播磨拳儿终于忍不住流下了眼泪...

小小编辑
41分钟前
79
5
shell输入内容时不显示内容

简介 大家都知道当我们ssh登录linux服务器的时候输入密码密码是不显示在屏幕上的,同样在我们写shell脚本的时候在获取用户密码的时候,有时候也希望不显示密码,这个是怎么做的呢 实例脚本 ...

bboysoulcn
今天
3
0
第11章 多线程

程序、进程、线程 程序(program)是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。 **进程(process)**是程序的一次执行过程或是正在运行的一个程序。动...

流小文
今天
6
0
SpringBoot引入第三方jar包或本地jar包的处理方式

在开发过程中有时会用到maven仓库里没有的jar包或者本地的jar包,这时没办法通过pom直接引入,那么该怎么解决呢 一般有两种方法 - 第一种是将本地jar包安装在本地maven库 - 第二种是将本地j...

独钓渔
今天
2
0
五、MyBatis缓存

一、MyBatis缓存介绍 缓存的使用可以明显的加快访问数据速度,提升程序处理性能,生活和工作中,使用缓存的地方很多。在开发过程中,从前端-->后端-->数据库等都涉及到缓存。MyBatis作为数据...

yangjianzhou
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部