Joel a Ãcrit :
Bonjour la liste,

Je recherche un outils Ãquivalent de "host" ou "dnslookup" mais qui interroge le fichier /etc/hosts au lieu du dns ( ou bien qui se base sur le paramettre order du fichier de conf /etc/host.conf)

En effet dans l'utilisation d'un script ou autre il peut Ãtre interessant de changer l'adresse ip en nom d'hÃte pour que l'affichage soit plus 'humainne".

Merci

tidj



Suite a l'ensemble de vos messages,

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}

Mais au genialissime getent fait cela tous seul :

Usage: getent [OPTION...] base de donnÃes [clà ...]
getent() - obtenir les entrÃes de la base de donnÃes administratives

  -s, --service=CONFIG       Configuration de service à Ãtre utilisÃe
  -?, --help                 Donner cette liste d'aide
      --usage                Donner un court message expliquant l'usage
  -V, --version              Afficher la version du programme

Les arguments obligatoires ou optionnels pour les options de formes longues
le sont aussi pour les options de forme courtes.

Base de donnÃes supportÃes:
ahosts aliases ethers group hosts netgroup networks passwd protocols rpc
services shadow

d'ou

debian$ getent hosts $ADDRESSIP | awk '{print $2}'

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 () {
ADDRESSIP=$1
for resolvsource in $(cat /etc/host.conf | grep order | sed -e "s/order //g;s/,/ /"); do
case $resolvsource in
hosts)
GETENT=`which getent`
if [ ! -z $GETENT ] && hostresolv=$($GETENT hosts $ADDRESSIP | awk '{print $2}') && [ ! -z $hostresolv ]; then
echo -n $hostresolv
exit 0
fi
;;
bind)
HOSTCMD=`which host`
if [ ! -z $HOSTCMD ] && hostresolv=$($HOSTCMD $ADDRESSIP) && ! echo ${hostresolv} | grep "not found:" &>/dev/null; then
echo -n ${hostresolv##* }
exit 0
fi
;;
esac
done


        echo -n $ADDRESSIP
}



Le plus propre serais evidemment de reffaire cela en c avec les fonctions apropriÃes (heu comment ca j'ai la flemme), voire mieux de faire un patch pour host.


Merci a vous

enfin si quequ'un a le petit programme miracle, je suis toujour preneur.

tidj


-- 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]



Répondre à