Calculando bits de máscara das subnets no linux…

Recentemente percebi que meu script de roteamento fazia algo muito tosco: buscava o bit da máscara da subnet com o comando de iproute.. o que poderia vir a ser desastroso algum dia.. Então resolvi aprimorar o script de roteamento com esse código que calcula de maneira simples o bit da máscara de subnet de uma determinada máscara de subnet!

#!/bin/bash
bit="`echo "$1" | awk '{ split($0,array,"."); print "obase=2;" array[1] }' | bc`"
bit="$bit`echo "$1" | awk '{ split($0,array,"."); print "obase=2;" array[2] }' | bc`"
bit="$bit`echo "$1" | awk '{ split($0,array,"."); print "obase=2;" array[3] }' | bc`"
bit="$bit`echo "$1" | awk '{ split($0,array,"."); print "obase=2;" array[4] }' | bc`"
bit="`echo $bit | sed 's/1/1\n/g' | grep "1" | wc -l`"
echo "a mascara de subnet $1 eh bit $bit"

Prático e eficiente! 💡

Escreva seu comentário: