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]

Répondre à