magic code pour reveil a distance

Le
Thomas
est ce qu'on peut envoyer le "magic code" de reveil avec des outils unix
standards ? (si possible que j'aurais deja sur mon ordi :-P )


ps : (pas urgent)
ca serait bien pratique aussi de savoir quelle adresse ip on a, et
quelles ip il y a sur le reseau local

merci :-)

--
In a world without walls and fences, who needs windows and gates ?
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JustMe
Le #41974
Thomas wrote:

est ce qu'on peut envoyer le "magic code" de reveil avec des outils unix
standards ? (si possible que j'aurais deja sur mon ordi :-P )


http://freshmeat.net/search/?q=wake+on+lan&section=projects



ps : (pas urgent)
ca serait bien pratique aussi de savoir quelle adresse ip on a, et


ifconfig ?
enfin ca depend de l'unix...


quelles ip il y a sur le reseau local


plus dur ca...


merci :-)



Jean-Marc Salis
Le #41532
Bonjour,

Avec une procédure en Perl comme ci-dessous:

#!/usr/bin/perl -w
#
# If called as wake.pl -f file it reads lines of the form
#
# aa:bb:cc:dd:ee;ff 12.34.56.78 or
# aa:bb:cc:dd:ee:ff foo.bar.com
# aa:bb:cc:dd:ee:ff
#
# which are MAC addresses and hostnames of NICs to send a wakeup packet.

# In the first two cases, unicast is used (and root permission may be
# required if the ARP cache needs to be injected with a mapping).
# In the third case, broadcast is used, and anybody can run the command.

# Comments in the file start with #.
#
# Or MAC addresses can be specified on the command line
#
# wake.pl aa.bb.cc.dd.ee.ff
#
# Or both can be used:
#
# wake.pl -f addresses.cfg 11:22:33:44:55:66
#
# This program may have to be run with superuser privilege because it
# may need to inject an ARP entry into the cache.
# Be careful, you could corrupt valid entries if those NICs are
# already active.
#
# Perl version by after DOS/Windows C version posted by
# on the Netboot mailing list
# Released under GNU Public License, 2000-01-05
#
use Getopt::Std;
use Socket;

getopt('f:', %opts);
if (exists($opts{'f'})) {
unless (open(F, $opts{'f'})) {
print "open: $opts{'f'}: $!n";
} else {
while (<F>) {
next if /^s*#/; # skip comments
($mac, $ip) = split;
next if !defined($mac) or $mac eq '';
if (!defined($ip) or $ip eq '') {
&send_broadcast_packet($mac);
} else {
&send_wakeup_packet($mac, $ip);
}
}
close(F);
}
}
while (@ARGV) {
send_broadcast_packet(shift(@ARGV));
}

sub send_broadcast_packet {
($mac) = @_;

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 $macn";
return;
}
print "Sending wakeup packet to MAC address $macn";
# 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
defined(send(S, $magic, 0, sockaddr_in(0x2fff, INADDR_BROADCAST)))
or print "send: $!n";
close(S);
}

sub send_wakeup_packet {
($mac, $ip) = @_;

if (!defined($iaddr = inet_aton($ip))) {
print "Cannot resolve $ipn";
return;
}
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 $macn";
return;
}
# Inject entry into ARP table, in case it's not there already
system("arp -s $ip $mac") == 0
or print "Warning: arp command failed, you need to be rootn";
print "Sending wakeup packet to $ip at MAC address $macn";
# 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";
# Send the wakeup packet
defined(send(S, $magic, 0, sockaddr_in(0x2fff, $iaddr)))
or print "send: $!n";
close(S);
}

Meilleures salutations.

--
Jean-Marc
-----------------
Jean-Marc Salis
Ch. du Cèdre 3b
1030 Bussigny

Tel.: +41 21 702 23 46
E-Mail:
olafkewl
Le #450608
On Fri, 16 Apr 2004 12:53:22 +0200, Thomas

est ce qu'on peut envoyer le "magic code" de reveil avec des outils unix
standards ? (si possible que j'aurais deja sur mon ordi :-P )


ps : (pas urgent)
ca serait bien pratique aussi de savoir quelle adresse ip on a, et
quelles ip il y a sur le reseau local


man cron
man at

Yag
Le #41092
ipscan.exe
permet de scanner toutes les ip d'un réseau local, voire de scanner les
ports ouverts... Bien utile.
@+
yag

"Thomas" news:
est ce qu'on peut envoyer le "magic code" de reveil avec des outils unix
standards ? (si possible que j'aurais deja sur mon ordi :-P )


ps : (pas urgent)
ca serait bien pratique aussi de savoir quelle adresse ip on a, et
quelles ip il y a sur le reseau local

merci :-)

--
In a world without walls and fences, who needs windows and gates ?


Yag
Le #41091
J'ai oublié le lien:
http://www.angryziber.com/ipscan/
@+
yag


"Thomas" news:
est ce qu'on peut envoyer le "magic code" de reveil avec des outils unix
standards ? (si possible que j'aurais deja sur mon ordi :-P )


ps : (pas urgent)
ca serait bien pratique aussi de savoir quelle adresse ip on a, et
quelles ip il y a sur le reseau local

merci :-)

--
In a world without walls and fences, who needs windows and gates ?


Thomas
Le #41089
In article (Dans l'article) "Yag"
ipscan.exe
permet de scanner toutes les ip d'un réseau local, voire de scanner les
ports ouverts... Bien utile.


merci pour ta reponse :-)
ca a l'air un prgm bien util effectivement :-)

seulement, j'ai mac os x ...
et en plus, ca m'aurais arrangé d'avoir un outil en ligne de commande
pour pouvoir l'executer avec ssh

--
In a world without walls and fences, who needs windows and gates ?

talon
Le #40662
Thomas
In article (Dans l'article) "Yag"
ipscan.exe
permet de scanner toutes les ip d'un r?seau local, voire de scanner les
ports ouverts... Bien utile.


merci pour ta reponse :-)
ca a l'air un prgm bien util effectivement :-)



ping 134.157.10.255
par exemple (ça marche certainement sous Linux et FreeBSD).
Tu attends quelques secondes puis tu fais
arp -a


seulement, j'ai mac os x ...
et en plus, ca m'aurais arrang? d'avoir un outil en ligne de commande
pour pouvoir l'executer avec ssh



--

Michel TALON


Thomas
Le #40661
In article (Dans l'article) (Michel Talon) wrote (écrivait) :

Thomas
In article (Dans l'article) "Yag"
ipscan.exe
permet de scanner toutes les ip d'un r?seau local, voire de scanner les
ports ouverts... Bien utile.


merci pour ta reponse :-)
ca a l'air un prgm bien util effectivement :-)



ping 134.157.10.255
par exemple (ça marche certainement sous Linux et FreeBSD).
Tu attends quelques secondes puis tu fais
arp -a


seulement, j'ai mac os x ...
et en plus, ca m'aurais arrang? d'avoir un outil en ligne de commande
pour pouvoir l'executer avec ssh




ah ?
je vois pas bien ce que ca fait, mais c'est interressant :-)
je vais essayer, merci :-))

--
In a world without walls and fences, who needs windows and gates ?



Thomas
Le #40660
In article (Dans l'article) JustMe
Thomas wrote:

est ce qu'on peut envoyer le "magic code" de reveil avec des outils unix
standards ? (si possible que j'aurais deja sur mon ordi :-P )


http://freshmeat.net/search/?q=wake+on+lan&section=projects


bof ...
m'en vais demander sur le forum mac os x




ps : (pas urgent)
ca serait bien pratique aussi de savoir quelle adresse ip on a, et


ifconfig ?
enfin ca depend de l'unix...


oui ca marche, merci :-))



quelles ip il y a sur le reseau local


plus dur ca...


michel talon m'a dit qqch d'interresant :-)

--
In a world without walls and fences, who needs windows and gates ?


Thomas
Le #40659
$magic = ("xff" x 6) . (pack('H12', $mac) x 16);


donc le "magic code" c'est 6 octets avec tous les bits à 1 ?

--
In a world without walls and fences, who needs windows and gates ?

Publicité
Poster une réponse
Anonyme