From owner-FreeBSD-net-jp@jp.freebsd.org  Fri Dec 11 17:30:32 1998
Received: (from daemon@localhost)
	by jaz.jp.freebsd.org (8.9.1+3.1W/8.7.3) id RAA27616;
	Fri, 11 Dec 1998 17:30:32 +0900 (JST)
	(envelope-from owner-FreeBSD-net-jp@jp.FreeBSD.org)
Received: from newgate.vio.co.jp (newgate.vio.co.jp [210.161.19.1])
	by jaz.jp.freebsd.org (8.9.1+3.1W/8.7.3) with ESMTP id RAA27606
	for <FreeBSD-net-jp@jp.freebsd.org>; Fri, 11 Dec 1998 17:30:28 +0900 (JST)
	(envelope-from tueno@vio.co.jp)
Received: from dolphin.corp.vio.co.jp (dolphin.corp.vio.co.jp [192.168.0.5])
	by newgate.vio.co.jp (8.8.8/3.6W-GATE-980317) with ESMTP id RAA07044
	for <FreeBSD-net-jp@jp.freebsd.org>; Fri, 11 Dec 1998 17:30:27 +0900 (JST)
Received: by dolphin.corp.vio.co.jp (DOLPHIN-971211) with ESMTP
	id RAA18812 for <FreeBSD-net-jp@jp.freebsd.org>; Fri, 11 Dec 1998 17:30:26 +0900 (JST)
Mime-Version: 1.0
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit
X-Sender: tueno@dolphin.corp.vio.co.jp
X-Mailer: Macintosh Eudora Pro Version 4.0.1Jr1
Message-Id: <v04010177b296889511c5@vio.co.jp>
In-Reply-To: <v04010160b2965f7a6756@vio.co.jp>
References: <199812101258.VAA08666@leo.system.sei.co.jp> Your message of
 "Thu, 10 Dec 1998 21:27:48 JST". <v04010156b2956e99c3e0@vio.co.jp>
Date: Fri, 11 Dec 1998 17:30:43 +0900
To: FreeBSD-net-jp@jp.freebsd.org
From: Takeshi Ueno <tueno@vio.co.jp>
Reply-To: FreeBSD-net-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+981115
X-Sequence: FreeBSD-net-jp 1201
Subject: [FreeBSD-net-jp 1201] wakeup.pl (Re: Wake on LAN with FreeBSD?)
Errors-To: owner-FreeBSD-net-jp@jp.freebsd.org
Sender: owner-FreeBSD-net-jp@jp.freebsd.org
X-Originator: tueno@vio.co.jp

$B$&$($N$G$9!#$3$s$K$A$O!#(B

At 2:35 PM +0900 98.12.11, Takeshi Ueno wrote:
> tcpdump$B$G$_$k$H!"C1=c$J(BUDP$B%Q%1%C%H$rAw?.$7$F$$$k$@$1$N$h$&$G$9$N$G(B
> $B;~4V$N$"$k$H$-$K$G$b!"$A$g$3$C$H(Bperl$B$G=q$$$F$_$h$&$H;W$C$F$*$j$^$9!#(B

...$B=q$-$^$7$?!#(B(^^)

$BL5J]>Z$G$9$1$I!"I,MW$G$7$?$i$4<+M3$K$*;H$$$/$@$5$$!#(B

$B$=$l$G$O!#(B
$B!t(BFreeBSD-net-jp$B$K$U$5$o$7$$OCBj$@$C$?$+$I$&$+>/$7?4G[$G$9!#(B

$B!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a$3$3$+$i(B
#!/usr/local/bin/perl -Tw

# wakeup.pl : Send "Magic Packet(TM)" to "Wake up" Powered off Machine.
# Copyright (C) 1998 Takeshi Ueno <tueno@vio.co.jp>

# Version 0.1

# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.

# Magic Packet(TM) Technology was developped by Advanced Micro Device,Inc.
# Technical document was published at:
# http://www.amd.com/products/npd/overview/20212d.html

# I referred "sndmagic" program written by Katsuyuki Yumoto.
# c.f. http://www.st.rim.or.jp/~yumo/pub/sndmagic.html

# Usage: wakeup.pl broadcastaddress MACaddress
# broadcastaddress: network broadcast address (ex: 192.168.0.255)
# MACaddress: target machine's MAC address

require 5.003;
use strict;
use Socket;

my ($remote_address, $remote_port, $proto, $pac, $iaddr, $paddr, $macadd,
$macstr, $i);

# Usage
if($ARGV[0] eq "") {
    die "Usage: wakeup.pl broadcastaddress MACaddress\n";
}

if($ARGV[1] eq "") {
    die "Usage: wakeup.pl broadcastaddress MACaddress\n";
}

# MAC address decode
$macadd=$ARGV[1];
$macadd=~s/://g;
if(length($macadd) != 12) {
    die "MAC address ERROR.\n";
}
$macstr=pack("H12", $macadd);

# Magic Packet create
$pac = "\xff\xff\xff\xff\xff\xff";
for($i=0; $i<20;$i++) {
    $pac .=$macstr;
}

# open socket
$remote_address=$ARGV[0];
$remote_port="7";
$proto=getprotobyname('udp');
socket(S, PF_INET, SOCK_DGRAM, $proto) or die "ERROR at open socket: $!";
setsockopt(S, SOL_SOCKET, SO_BROADCAST,1) or die "ERROR at sockopt: $!";

# send Magic Packet
$iaddr=inet_aton($remote_address) or die "ERROR at get broadcast address: $!";
$paddr=sockaddr_in($remote_port,$iaddr) or die "ERROR at make broadcast: $!";
send(S,$pac,0,$paddr) or die "ERROR at send broadcast:$!";

exit(0);
# end
$B!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a!a$3$3$^$G(B

--
 **********************************************************************
 $B>eLn(B $BIp;K(B(Takeshi Ueno) <tueno@vio.co.jp> http://www.vio.co.jp/~tueno/
 PGP Key fingerprint = 57 A9 D4 74 C9 01 84 7E  D0 70 AE C1 0D 03 BC 17
 ***Your Dreams Will Come True!****************************************
