[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
- getnameip,
RAUL LEOPOLDO LONGHI <=