Link WakeOnLanで電源を入れるスクリプト

このエントリーをはてなブックマークに追加    [Perl]

外部から家のPCの電源を入れるスクリプトを作ってみた。
実装はPerlで、CGIでWeb上からアクセスして電源を入れるように。
WakeOnLanという機能を利用しております。

foreach (split /:/, $hwaddr) {
  $pkt .= chr(hex($_));
}
$pkt = chr(0xFF) x 6 . $pkt x 16;

↑これでマジックパケットという特殊なパケットを生成します

$raddr = gethostbyname('255.255.255.255');
$them = pack_sockaddr_in($DEFAULT_PORT, $raddr);
$proto = getprotobyname('udp');

#UDPの接続用ソケットを生成
socket(S, AF_INET, SOCK_DGRAM, $proto) or die "socket : $!";
#ブロードキャストを指定
setsockopt(S, SOL_SOCKET, SO_BROADCAST, 1) or die "setsockopt : $!";

#パケット送信
send(S, $pkt, 0, $them) or die "send : $!";
close S;

↑これをUDPでブロードキャストすることにより、
他のマシンのPC電源を入れることが可能に!

このエントリーをはてなブックマークに追加
2005,07,23 : 23:52 | 修正 | コメント (0)

Comments






Use Cookie?



2004 All rights reserved

Movable Type 5.04