shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

getnameip


From: RAUL LEOPOLDO LONGHI
Subject: getnameip
Date: Wed, 15 Mar 2006 16:48:23 -0300

Boa tarde,

tive a necessidade de montar um arquivos hosts da minha rede interna,
onde as estações adquirem o ip por dhcp. Abaixo estou encaminhando o
script que denominei de 'getnameip'.

Atualmente utilizo esse hosts para o sarg, controle de msn e +

espero que façam proveito.




##
## By Raul Longhi <address@hidden>
##
## Versao 1.1

## DEBUG [ 0 Desativa msg | 1 Ativa msg ]
DEBUG=0

## Conexoes simultaneas permitidas
MAX_CONN=20

## REDES DE ABRANGENCIA
REDES="192.168.0. 192.168.1. 192.168.2. 192.168.3."

## DITEROTORIO p/ CACHE
SPOOL=/var/spool/getnameip

## Checa se o ip passado por parametro está ativo.
checkip () {
  [ -n $1 ] && {
     if ping -c 1 $1 > /dev/null; then
        [ $DEBUG -eq 1 ] && echo "IP: ${1}... OK!"
        return 0
     else
        [ $DEBUG -eq 1 ] && echo "IP: ${1}... Falhou!"
        return 1
     fi
  }
}

name2ip () {
       for name in $*; do
               head -1 ${SPOOL}/${name} 2> /dev/null
       done
}


if [  "$1" != "noscan" ]; then
       [ ! -d ${SPOOL} ] && mkdir -p ${SPOOL}

       for i in ${REDES}; do
               conn=0
               for finalip in $(seq 1 254); do
                       let con++
                       (
                       ip=${i}${finalip}
                       if checkip ${ip} -eq 0; then
                               namepc=$(nmblookup -S \* -U ${ip} | awk
'$2=="<00>" && $4!="<GROUP>"{print $1;exit}')
                               [ "$namepc" ] && echo "$ip" >
"${SPOOL}/${namepc}"
                               [ $DEBUG -eq 1 ] && echo -e "${ip}\t${namepc}\n"
                       fi
                       ) &
                       if [ $conn -eq $MAX_CONN ]; then
                               conn=0
                               wait
                       fi
               done
       done
       wait
fi
find ${SPOOL} -maxdepth 1 -type f -mtime +6 -exec rm -f {} \; -print



Saudações a todos e ...


VIVA A LIBERDADE Linux!   :)

--
RAUL LEOPOLDO LONGHI
address@hidden
Debian GNU/Linux - User Linux 358369


reply via email to

[Prev in Thread] Current Thread [Next in Thread]