Joel a �crit, samedi 5 f�vrier 2005, � 16:25 :
[...]
> Un grep peux effectivement faire l'affaire, mais il faudrait le piper
> pour que cela soit propre, genre :
>
> debian$ cat /etc/hosts | sed -e "s/#.*//g" | \
> grep $ADDRESSIP | awk '{print $2}
On pourrait simplifier, et n'utiliser que sed ou awk ; ce dernier est
plus commode pour choisir un champ :
</etc/hosts awk "$1=~/^$ADDRESSIP$/{print $2}"
(mais ci-dessus $ADDRESSIP est une regexp).
> Mais au genialissime getent fait cela tous seul :
[...]
> debian$ getent hosts $ADDRESSIP | awk '{print $2}'
"$ADDRESSIP" est pr�f�rable
> Mais l'id�ale serait un outils qui respect l'ordre configurer dans
> /etc/host.conf (comme nslookup sur HP-UX, a noter que je n'ai pas essay�
> avec nslookup, le package tendant � �tre remplacer par host )
>
> d'ou la petite fonction :
>
> >ipsolve () [...]
#!/bin/bash
ipsolve () {
ADDRESSIP="$1"
</etc/host.conf sed -e '
/^[[:space:]]*order[[:space:]]*/!d
s///
s/[[:space:]]*,[[:space:]]*/\n/' | \
while read resolvsource; do
case "$resolvsource" in
hosts)
GETENT=`which getent`
if [ -n "$GETENT" ] &&
hostresolv=$(
"$GETENT" hosts "$ADDRESSIP" | \
awk '{print $2}'
) &&
[ -n "$hostresolv" ];
then
echo -n "$hostresolv "
exit 0
fi
;;
bind)
HOSTCMD=`which host`
if [ -n "$HOSTCMD" ] &&
hostresolv=$("$HOSTCMD" "$ADDRESSIP")
then
case "$hostresolv" in
*"not found"*)
;;
*)
echo -n "${hostresolv##* } "
;;
esac
exit 0
fi
;;
esac
done
echo " $ADDRESSIP"
}
ipsolve "$1"
--
Jacques L'helgoualc'h
--
Pensez � lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez � rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]