Extraire l’adresse IP d’un serveur
, popularité : 2%
Cet article n’est qu’un copié collé d’un mail de Jean-Pierre Verrue sur le liste de diffusion clx@gaia.anet.fr .
En Perl
#!/usr/bin/perl -w
use strict ;
my $intrf="eth0" ;
open (FD, "LANG=C /sbin/ip -f inet addr show dev $intrf|") or die("ip : $!") ;
my @lines = <FD> ;
close(FD) ;
my ($line) = grep (/inet/, @lines) ;
my @ip = split(/[ \t]+/, $line) ;
# Avec la regexp ci dessus il y a forcément une première variable vide
# puisqu'il y a des blancs en début de ligne. Donc l'@IP est la
# troisième variable($ip[2]), pas la deuxième.
print "$ip[2]\n" ;
exit 0;
En bash
#!/bin/bash
intrf="eth0"
set $(LANG=C /sbin/ip -f inet addr show dev $intrf | grep "inet")
echo $2
exit 0
On peut remplacer echo $2
par xmessage -center -buttons "Quitter:0" -default "Quitter" $2
pour afficher une popup.
Notes
La commande ’ip’ n’existe pas dans tous les environnements (AIX par exemple) Dans ce cas il faut se rabatre sur ifconfig.