Just another problem

Bash: Mask Converter

Posted in tech by Adriano on 07/06/2011

Mostra o número de bits de uma máscara IP. Exemplo: 255.255.255.192 -> 26

#!/bin/bash
total_bits=0
for octet in `echo $1|awk -F. ' {print $1 " " $2 " " $3 " " $4}'`
do
    result=0
    mask=255
    num_bits=8
    while [ $mask -ge 0 ]
    do
        if [ $octet -eq $mask ]
        then
            break
        fi
        result=$(( $mask << 1 ))
        mask=$(( $result & 255 ))
        let num_bits=num_bits-1
    done
    let total_bits=total_bits+$num_bits
done
echo "$total_bits"
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: