2009年5月21日星期四

[PerlChina] Re: Wake On Lan from command line.

赞一个。。。

2009/5/21 cnhack TNT <cnhacktnt@gmail.com>
我家里有台台式机挂了动态域名24小时在线的,然后我的笔记本平常是连入局域网时常处于关机状态的。有时候在外面突然记起什么想在家里笔记本上弄点东西,或者想 eix-sync && emerge -DuvN world 一下,老开着吧挺浪费电的,不过好就好在现在大多数的主板都支持 Wake On Lan 远程唤醒的功能,原理就是向其所在的局域网广播地址发送一个特殊的UDP广播包(又叫Magic packet, 9号端口), 这个广播包结构很简单,数据段就是6个0xFF接上需要被唤醒的机器的网卡物理地址(重复16个), 于是结合 perl 和 socat,很容易弄一条命令就能唤醒我的笔记本了,如下:

echo -n 00:18:8B:B9:3A:05 | perl -aF: -ne 'print chr(0xFF)x6 . join( "", map{ chr hex } @F )x16' | socat - UDP4-DATAGRAM:255.255.255.255:9,broadcast

这样就能啥时候想开机就开机了,用完再关,省电节能呵呵。
:-)



--
姜源
Yuan Jiang
http://blog.vetcafe.net
http://twitter.com/sleetdrop

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: