Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

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

Login: brsrogers, 16599 pontos

Download:


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 ]

[ 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
   Script Linux recomendado Testa link e reinicia a interface
   Script Linux recomendado Buscar conteúdo digitado em sites de busca
   Script Linux recomendado "Fortune" em modo gráfico
   Script Linux recomendado Importar varius Emolticons de uma vez para amsn
   Script Linux recomendado Display números digital no terminal

Comentários
[1] Comentário enviado por julio.skill 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


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.