Validador mac-address em shell script

Publicado por Rogerio Lopes Silva (última atualização em 13/12/2011)

[ Hits: 7.974 ]

Homepage: http://brsrogers.com.br

Download valdamac.sh




Código fonte de validação de mac-adress em shell script.

Útil para iptables e outras aplicações que exigem um formato especifico de mac-address.

  



Esconder código-fonte

#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
echo "Digite um mac valido no formato: ff:dd:aa:dd:aa:12"
read MAC

if [[ $MAC =~ ^[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}$ ]]
then

echo "o mac digitado é um mac valido"

else

echo "o mac digitado é um mac invalido"
fi

exit 0

Scripts recomendados

Linux Mint 20 Pós Instalação

ZPenBoot - Gravando imagem ISO em um pendrive

Gerador de senhas aleatórias com pwgen

Texto colorido e centralizado

Adiciona, remove e lista usuários web (htpasswd)


  

Comentários
[1] Comentário enviado por removido em 13/12/2011 - 13:28h

Um mac address é um conjunto de caracteres hexadecimal, ou seja, de A-F 0-9 não diferenciando maiusculas de minusculas.

[2] Comentário enviado por /bin/laden em 13/12/2011 - 16:27h

Complementando:

Vc poderia "emagrecer" essa regex:

^[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}$

assim:

^\([0-9A-Fa-f]\{2\}:\)\{5\}[0-9A-Fa-f]\{2\}$

[3] Comentário enviado por brsrogers em 13/12/2011 - 21:55h

testei digitar um mac com essa expressao ,^\([0-9A-Fa-f]\{2\}:\)\{5\}[0-9A-Fa-f]\{2\}$ , que vc passou mas não funciona. depois tente digitar um mac-adress nesse formato 00:dd:aa:22:aa:dd:01 e ve se funciona. Testei algumas alteraçoes mesmo assim nao conseguir funcionar.

[4] Comentário enviado por /bin/laden em 14/12/2011 - 17:59h

Usando o grep:

$ echo "00:dd:aa:22:aa:dd" | grep "^\([0-9A-Fa-f]\{2\}:\)\{5\}[0-9A-Fa-f]\{2\}$"
00:dd:aa:22:aa:dd (Casou)

$ echo "00:dd:aa:22:aa:dd:01" | grep "^\([0-9A-Fa-f]\{2\}:\)\{5\}[0-9A-Fa-f]\{2\}$"
Não casa!

Se for usar o interpretador built-in de regex do bash, vc vai ter que tirar as contra-barras eu acho... =P

[5] Comentário enviado por fabioeduardo em 15/12/2011 - 00:44h

Assim fica ainda melhor....

guerra3paz@ubuntu:~$ ifconfig | egrep -io '([0-9a-f]{2}:){5}[0-9a-f]{2}'
00:16:c5:35:5a:7f
36:9a:3e:b9:1e:56
00:19:e7:63:5b:a6

[6] Comentário enviado por brsrogers em 04/01/2012 - 14:11h

Gostei deste metodo abreviado e usei na validação de ip tambem.
ifconfig | egrep -io '([0-9]{1,3}\.){3}[0-9]{1,3}'
bom q consigo pegar ip e mascara


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts