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"
Tres sympa :o)
C'�tait mon premier poste sur la liste et je dois dire que c'est un vrai plaisir d'y participer...
Donc il ne reste plus qu'a faire un patch en c pour host ;o)
-- 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]

