fragment uit het Perl script: (SuSE linux 7.2/apache)
(complete source heb ik ff op http://ews99.d2g.com/dload/wakeup.txt gezet
Alleen het wil niet werken
Nu heb ik vroeger toen ik nog FreeSCO had dit script wel werkent gehad. Ik heb zelf het idee dat het aan de wisseling eth0 en eth1 ligt (linux).
nl. Op mijn Freesco was eth0 verbonden met het locale netwerk, en nu is dat eth1 (die andere hangt aan het internet)
Ik weet alleen niet echt veel van Perl
(complete source heb ik ff op http://ews99.d2g.com/dload/wakeup.txt gezet
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| sub send_broadcast_packet {
my ($mac,$ip) = @_;
if ($mac !~ /^[\da-f]{2}:[\da-f]{2}:[\da-f]{2}:[\da-f]{2}:[\da-f]{2}:[\da-f]{2}$/i) {
print "Malformed MAC address $mac\n";
return;
}
# Remove colons
$mac =~ tr/://d;
# Magic packet is 6 bytes of FF followed by the MAC address 16 times
$magic = ("\xff" x 6) . (pack('H12', $mac) x 16);
# Create socket
socket(S, PF_INET, SOCK_DGRAM, getprotobyname('udp')) or die "socket: $!\n";
# Enable broadcast
setsockopt(S, SOL_SOCKET, SO_BROADCAST, 1) or die "setsockopt: $!\n";
# Send the wakeup packet
if ($opt_d) {
print "Sending wakeup packet to MAC address $mac";
print " ($ip)" if (defined($ip));
print "\n";
}
# defined(send(S, $magic, 0, sockaddr_in(0x2fff, inet_aton('255.255.255.255'))))
defined(send(S, $magic, 0, sockaddr_in(0x2fff, INADDR_BROADCAST)))
or print "send: $!\n";
close(S);
} |
Alleen het wil niet werken
Nu heb ik vroeger toen ik nog FreeSCO had dit script wel werkent gehad. Ik heb zelf het idee dat het aan de wisseling eth0 en eth1 ligt (linux).
nl. Op mijn Freesco was eth0 verbonden met het locale netwerk, en nu is dat eth1 (die andere hangt aan het internet)
Ik weet alleen niet echt veel van Perl
Hier had uw advertentie kunnen staan!