Validador mac-address em shell script

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

[ Hits: 8.594 ]

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

Comandos para Avira AntiVir (ATUALIZADO!)

Troca de imagem da tela de bloqueio de usuário no Linux Mint MATE

Gerenciar usuários do OpenLDAP com Sistema ZIMBRA

Cadastro de usuários no Samba

Script de backup e envio via SSH


  

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