Just another problem

Bash: Mask Converter

Publicado em tech por Adriano em 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"

Deixe uma resposta

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

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.