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