Esta quem mandou foi o Alessandro Dias
Script que calcula os End.Rede e Broadcast
#!/bin/bash
function dec2bin() { echo "obase=2;$1" | bc -l }
function bin2dec() { echo "$((2#$1))" }
addr=`echo $1 | cut -d "/" -f 1` mask=`echo $1 | cut -d "/" -f 2` mask_BIN=$(echo 1|sed "/^1{$mask}$/bb;:a s/^1{1,$(($mask-1))}$/&1/;ta;:b;s/^[01]{1,31}$/&0/;tb;s/[01]{8}/&./g;s/.$//")
for i in 1 2 3 4; do eval ip$i=$(dec2bin $(echo $addr | cut -d'.' -f $i) | sed ':a;s/^[01]{1,7}$/0&/;ta') eval nm$i=$(echo $mask_BIN | cut -d'.' -f $i) done
echo "Entrada : "$addr"/"$mask echo "End.IP(2) : "$ip1"."$ip2"."$ip3"."$ip4 echo "Mascara(2) : "$mask_BIN
nm_d="${nm1//0}${nm2//0}${nm3//0}${nm4//0}" echo "End. IP : $addr" echo "Mascara : $((2#$nm1)).$((2#$nm2)).$((2#$nm3)).$((2#$nm4)) = ${#nm_d}" net=$((((2#$ip1$ip2$ip3$ip4)) & ((2#$nm1$nm2$nm3$nm4)))) i=$(echo $nm1$nm2$nm3$nm4 | sed 's/1/2/g;s/0/1/g' | sed 's/2/0/g') bcast=$(($net | ((2#$i)))) addr=""; for i in 1 2 3 4; do ip1=$((net & 255)) net=$((net >> 8)) addr="${ip1}.$addr"; done; echo "Rede : ${addr%.} / ${#nm_d}" addr=""; for i in 1 2 3 4; do ip1=$((bcast & 255)) bcast=$((bcast >> 8)) addr="${ip1}.$addr"; done; echo "Broadcast : ${addr%.}"
Espero ter ajudado
__________________________________________________ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/
br-users@lists.fedoraproject.org