Pular para o conteúdo

Validador mac-address em shell script

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.
Rogerio Lopes Silva brsrogers
Hits: 8.638 Categoria: Shell Script Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

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.
Download valdamac.sh Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Limpar pacotes com versões antigas do cache do apt

Cadastrando e removendo usuários do SAMBA com um script

SQ - simulador do comando seq

Reinicia trabalhos CUPS

akill

#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

Entre na sua conta para comentar.