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 <[EMAIL PROTECTED]>
##
## 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
[EMAIL PROTECTED]
Debian GNU/Linux - User Linux 358369


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a