Script que calcula os End.Rede e Broadcast

Publicado por Alessandro Dias 18/05/2007

[ Hits: 5.744 ]

Download lista_ips.sh




Cálculo dos endereços de Rede e Broadcast.

Vc entra com o ip/máscara, como:

192.168.10.66/27

  



Esconder código-fonte

#!/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%.}"


Scripts recomendados

Talk Weather - Anúncio do tempo e temperatura em voz sintetizada

Calculadora em shell script

Alterar o IP da máquina.

Script simples para pegar informações sobre placa de rede

Matando múltiplos processos


  

Comentários
[1] Comentário enviado por diaspcf em 21/05/2007 - 17:25h

Pessoal, não sei o que está havendo, mas todos os meus scrits estão com esse problema. Já entrei em contato várias vezes com os moderadores pelo email do suporte, mas até agora nenhum retorno!!!
Caso alguem queira o script, me mande uma mensagem com o email que eu mando, ok?
Att.
Alessandro.


Contribuir com comentário