le 09/04/2004 à 18:36, Jean Louis Maurec a écrit dans le message <4076d0d7$0$18226$ :
Quelqu'un aurait un bout de code perl permettant de recuperer l'adresse IP d'une machine en lui precisant l'interface ?
Jusqu'ici, tout les scripts que j'ai essaye de faire n'etait pas tres fiable, il ne recuperait pas toujours l'ip (je sais pas pourquoi)
Difficile de faire quelque chose de portable. Sur GNU/Linux :
#!/usr/bin/perl -w use strict; my $cmd = "/sbin/ifconfig"; if (!@ARGV) { print "usage: $0 if ...n"; exit(1); } foreach my $if (@ARGV) { open(IF, '-|', "$cmd $if"); while (<IF>) { chomp; if (s/^s*inet addr:((?:d+.){3}d+)s+.*$/$1/) { print "the interface $if has address: $_n"; } } close(IF); } __END__
-- Benoit Izac
DominiX
ici même:, Benoit Izac a écrit
#!/usr/bin/perl -w use strict; my $cmd = "/sbin/ifconfig";
pour être standard mieux vaut écrire my $cmd = "/sbin/ifconfig -a";
d'autre part il y a aussi netstat -r ou netstat -i qui est aussi tres repandu (win32) ou carrement IO::Interface ou bien perl -MSocket -MSys::Hostname -e 'print inet_ntoa(scalar(gethostbyname($name)) || "localhost");' ou encore perl -MSys::HostIP -e 'print hostip'
-- dominix
ici même:8765c9udv7@message.id,
Benoit Izac <use.reply.to@INVALID.ADDRESS> a écrit
#!/usr/bin/perl -w
use strict;
my $cmd = "/sbin/ifconfig";
pour être standard mieux vaut écrire
my $cmd = "/sbin/ifconfig -a";
d'autre part il y a aussi
netstat -r ou netstat -i
qui est aussi tres repandu (win32) ou carrement
IO::Interface
ou bien
perl -MSocket -MSys::Hostname -e
'print inet_ntoa(scalar(gethostbyname($name)) || "localhost");'
ou encore
perl -MSys::HostIP -e 'print hostip'
#!/usr/bin/perl -w use strict; my $cmd = "/sbin/ifconfig";
pour être standard mieux vaut écrire my $cmd = "/sbin/ifconfig -a";
d'autre part il y a aussi netstat -r ou netstat -i qui est aussi tres repandu (win32) ou carrement IO::Interface ou bien perl -MSocket -MSys::Hostname -e 'print inet_ntoa(scalar(gethostbyname($name)) || "localhost");' ou encore perl -MSys::HostIP -e 'print hostip'
-- dominix
DominiX
"DominiX" a écrit dans le message de news:407741c1$0$22878$
ici même:, Benoit Izac a écrit
#!/usr/bin/perl -w use strict; my $cmd = "/sbin/ifconfig";
pour être standard mieux vaut écrire my $cmd = "/sbin/ifconfig -a";
d'autre part il y a aussi netstat -r ou netstat -i qui est aussi tres repandu (win32) ou carrement IO::Interface ou bien perl -MSocket -MSys::Hostname -e 'print inet_ntoa(scalar(gethostbyname($name)) || "localhost");'
"DominiX" <dominix@despamed.com> a écrit dans le message de
news:407741c1$0$22878$626a14ce@news.free.fr...
ici même:8765c9udv7@message.id,
Benoit Izac <use.reply.to@INVALID.ADDRESS> a écrit
#!/usr/bin/perl -w
use strict;
my $cmd = "/sbin/ifconfig";
pour être standard mieux vaut écrire
my $cmd = "/sbin/ifconfig -a";
d'autre part il y a aussi
netstat -r ou netstat -i
qui est aussi tres repandu (win32) ou carrement
IO::Interface
ou bien
perl -MSocket -MSys::Hostname -e
'print inet_ntoa(scalar(gethostbyname($name)) || "localhost");'
"DominiX" a écrit dans le message de news:407741c1$0$22878$
ici même:, Benoit Izac a écrit
#!/usr/bin/perl -w use strict; my $cmd = "/sbin/ifconfig";
pour être standard mieux vaut écrire my $cmd = "/sbin/ifconfig -a";
d'autre part il y a aussi netstat -r ou netstat -i qui est aussi tres repandu (win32) ou carrement IO::Interface ou bien perl -MSocket -MSys::Hostname -e 'print inet_ntoa(scalar(gethostbyname($name)) || "localhost");'
le 10/04/2004 à 02:37, "DominiX" a écrit dans le message <407741c1$0$22878$ :
pour être standard mieux vaut écrire my $cmd = "/sbin/ifconfig -a";
standard par rapport à quoi ?
unix compliant. MacOsX, Solaris, QNX, *BSD,...
-- Dominix
Benoit Izac
Bonjour,
le 10/04/2004 à 11:41, "DominiX" a écrit dans le message <4077c153$0$15658$ :
pour être standard mieux vaut écrire my $cmd = "/sbin/ifconfig -a";
standard par rapport à quoi ?
unix compliant. MacOsX, Solaris, QNX, *BSD,...
ifconfig n'est pas defini pas dans Single UNIX Specification v3, il n'y a donc pas de raison d'être "unix compliant". voir : <http://www.unix-systems.org/>
-- Benoit Izac
Bonjour,
le 10/04/2004 à 11:41, "DominiX" <dominix@despamed.com> a écrit
dans le message <4077c153$0$15658$626a14ce@news.free.fr> :
pour être standard mieux vaut écrire
my $cmd = "/sbin/ifconfig -a";
standard par rapport à quoi ?
unix compliant.
MacOsX, Solaris, QNX, *BSD,...
ifconfig n'est pas defini pas dans Single UNIX Specification v3, il n'y
a donc pas de raison d'être "unix compliant".
voir : <http://www.unix-systems.org/>
le 10/04/2004 à 11:41, "DominiX" a écrit dans le message <4077c153$0$15658$ :
pour être standard mieux vaut écrire my $cmd = "/sbin/ifconfig -a";
standard par rapport à quoi ?
unix compliant. MacOsX, Solaris, QNX, *BSD,...
ifconfig n'est pas defini pas dans Single UNIX Specification v3, il n'y a donc pas de raison d'être "unix compliant". voir : <http://www.unix-systems.org/>
-- Benoit Izac
DominiX
ici même:, Benoit Izac a écrit
Bonjour,
le 10/04/2004 à 11:41, "DominiX" a écrit dans le message <4077c153$0$15658$ :
pour être standard mieux vaut écrire my $cmd = "/sbin/ifconfig -a";
standard par rapport à quoi ?
unix compliant. MacOsX, Solaris, QNX, *BSD,...
ifconfig n'est pas defini pas dans Single UNIX Specification v3, il n'y a donc pas de raison d'être "unix compliant". voir : <http://www.unix-systems.org/>
ca s'apelle un standart de fait. sur la pluspart des systeme *nix si tu entre la commande ifconfig -a tu obtient une liste des interfaces. il n'y a que sous linux que tu aura cette meme reponse sans le "-a" faut pas chercher plus loin.
-- dominix
ici même:87wu4ot8zr@message.id,
Benoit Izac <use.reply.to@INVALID.ADDRESS> a écrit
Bonjour,
le 10/04/2004 à 11:41, "DominiX" <dominix@despamed.com> a écrit
dans le message <4077c153$0$15658$626a14ce@news.free.fr> :
pour être standard mieux vaut écrire
my $cmd = "/sbin/ifconfig -a";
standard par rapport à quoi ?
unix compliant.
MacOsX, Solaris, QNX, *BSD,...
ifconfig n'est pas defini pas dans Single UNIX Specification v3, il
n'y a donc pas de raison d'être "unix compliant".
voir : <http://www.unix-systems.org/>
ca s'apelle un standart de fait.
sur la pluspart des systeme *nix si tu entre la commande ifconfig -a
tu obtient une liste des interfaces. il n'y a que sous linux que tu
aura cette meme reponse sans le "-a" faut pas chercher plus loin.
le 10/04/2004 à 11:41, "DominiX" a écrit dans le message <4077c153$0$15658$ :
pour être standard mieux vaut écrire my $cmd = "/sbin/ifconfig -a";
standard par rapport à quoi ?
unix compliant. MacOsX, Solaris, QNX, *BSD,...
ifconfig n'est pas defini pas dans Single UNIX Specification v3, il n'y a donc pas de raison d'être "unix compliant". voir : <http://www.unix-systems.org/>
ca s'apelle un standart de fait. sur la pluspart des systeme *nix si tu entre la commande ifconfig -a tu obtient une liste des interfaces. il n'y a que sous linux que tu aura cette meme reponse sans le "-a" faut pas chercher plus loin.
-- dominix
Benoit Izac
Bonjour,
le 10/04/2004 à 22:55, "DominiX" a écrit dans le message <40785f2a$0$499$ :
ca s'apelle un standart de fait. sur la pluspart des systeme *nix si tu entre la commande ifconfig -a tu obtient une liste des interfaces. il n'y a que sous linux que tu aura cette meme reponse sans le "-a" faut pas chercher plus loin.
Bien ; maintenant que tu as ton "standart de fait", execute mon script avec et sans le `-a' sur un *BSD et dis moi si il fonctionne.
De plus mon script n'a pas besoin du `-a' car il ne cherche pas à lister toutes les interfaces ; il répond simplement à la question de l'OP et j'ai bien pris soin de préciser le contexte.
-- Benoit Izac
Bonjour,
le 10/04/2004 à 22:55, "DominiX" <dominix@despamed.com> a écrit
dans le message <40785f2a$0$499$636a15ce@news.free.fr> :
ca s'apelle un standart de fait.
sur la pluspart des systeme *nix si tu entre la commande ifconfig -a
tu obtient une liste des interfaces. il n'y a que sous linux que tu
aura cette meme reponse sans le "-a" faut pas chercher plus loin.
Bien ; maintenant que tu as ton "standart de fait", execute mon script
avec et sans le `-a' sur un *BSD et dis moi si il fonctionne.
De plus mon script n'a pas besoin du `-a' car il ne cherche pas à lister
toutes les interfaces ; il répond simplement à la question de l'OP et
j'ai bien pris soin de préciser le contexte.
le 10/04/2004 à 22:55, "DominiX" a écrit dans le message <40785f2a$0$499$ :
ca s'apelle un standart de fait. sur la pluspart des systeme *nix si tu entre la commande ifconfig -a tu obtient une liste des interfaces. il n'y a que sous linux que tu aura cette meme reponse sans le "-a" faut pas chercher plus loin.
Bien ; maintenant que tu as ton "standart de fait", execute mon script avec et sans le `-a' sur un *BSD et dis moi si il fonctionne.
De plus mon script n'a pas besoin du `-a' car il ne cherche pas à lister toutes les interfaces ; il répond simplement à la question de l'OP et j'ai bien pris soin de préciser le contexte.
-- Benoit Izac
Laurent Wacrenier
DominiX écrit:
ca s'apelle un standart de fait. sur la pluspart des systeme *nix si tu entre la commande ifconfig -a tu obtient une liste des interfaces. il n'y a que sous linux que tu aura cette meme reponse sans le "-a" faut pas chercher plus loin.
Plutôt un bi-standard de fait : il y aussi les systèmes où ça renvoie "option inconnue" et qui réclament le nom d'une interface en argument (ifconfig ne sait pas lister les interfaces).
DominiX <dominix@despamed.com> écrit:
ca s'apelle un standart de fait.
sur la pluspart des systeme *nix si tu entre la commande ifconfig -a
tu obtient une liste des interfaces. il n'y a que sous linux que tu
aura cette meme reponse sans le "-a" faut pas chercher plus loin.
Plutôt un bi-standard de fait : il y aussi les systèmes où ça renvoie
"option inconnue" et qui réclament le nom d'une interface en argument
(ifconfig ne sait pas lister les interfaces).
ca s'apelle un standart de fait. sur la pluspart des systeme *nix si tu entre la commande ifconfig -a tu obtient une liste des interfaces. il n'y a que sous linux que tu aura cette meme reponse sans le "-a" faut pas chercher plus loin.
Plutôt un bi-standard de fait : il y aussi les systèmes où ça renvoie "option inconnue" et qui réclament le nom d'une interface en argument (ifconfig ne sait pas lister les interfaces).