Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Script pour recuperer l'adresse Ip

9 réponses
Avatar
Jean Louis Maurec
Bonjour,

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)

Merci d'avance

9 réponses

Avatar
Benoit Izac
Bonjour,

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

Avatar
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

Avatar
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");'


desolé, je voulais ecrire

perl -MSocket -MSys::Hostname -e
'print inet_ntoa(scalar(gethostbyname(hostname())) || "localhost");'
--
dominix





Avatar
Benoit Izac
Bonjour,

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 ?

--
Benoit Izac

Avatar
DominiX
ici même:,
Benoit Izac a écrit
Bonjour,

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


Avatar
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



Avatar
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




Avatar
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

Avatar
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).