[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Res: [shell-script] Problemas na verificação de MAC
From: |
Felipe Rodrigues Maia |
Subject: |
Res: [shell-script] Problemas na verificação de MAC |
Date: |
Thu, 15 Apr 2010 06:28:48 -0700 (PDT) |
Bom dia Marcelo.
Há muito tempo atrás escrevi a seguinte função:
#########################
fn_valida_mac() {
if [ `echo "$1" | sed
"/^\([0-9a-fA-F][0-9a-fA-F]:\)\{5\}[0-9a-fA-F][0-9a-fA-F]$/p"|wc -l` -eq 2 ]
then
echo "Mac Addres '$1' Valido";
else
echo "Mac Address '$1' Invalido";
fi
}
#########################
Parece complicada, mas não é tanto... Observe que ele faz um teste por 5 casas
hexadecimais ( *** ^\([0-9a-fA-F][0-9a-fA-F]:\)\{5\} *** ) mais uma casa
decimal em seguência com o fim "$" da string ( *** [0-9a-fA-F][0-9a-fA-F]$
***). Se o sed acha a expressão, ele reimprime o conteúdo da string,
ocasionando a ocorrência de duas linhas, sendo contadas por *** wc -l *** e
comparadas com *** -eq 2 ***
Com essa eu quebrei a cabeça mas funciona direitinho...
Faça os testes com, por exemplo:
###
fn_valida_mac 01:02:03:04:05:06
fn_valida_mac 01:02:03:04:05
fn_valida_mac 01:02:03:04:05:06:07
fn_valida_mac 01:02:03:04:05:0F
fn_valida_mac 01:02:03:04:05:0G
###
O resultado deve ser esse:
###
Mac Addres '01:02:03:04:05:06' Valido
Mac Address '01:02:03:04:05' Invalido
Mac Address '01:02:03:04:05:06:07' Invalido
Mac Addres '01:02:03:04:05:0F' Valido
Mac Address '01:02:03:04:05:0G' Invalido
###
Daí é só aprimorar, colocando, por exemplo, valores de retorno para efetuar os
testes logo que o usuário digitar.
Um Abraço,
Felipe Rodrigues Maia
address@hidden
________________________________
De: shelleiro <address@hidden>
Para: address@hidden
Enviadas: Quinta-feira, 15 de Abril de 2010 9:42:27
Assunto: [shell-script] Problemas na verificação de MAC
Pessoal,
Acho que estou desaprendendo, mas vamos lá ...
Fiz um script que configura os serviços de :
shaper
iptables
mrtg
dhcpd
Com uma única entrada, mas como o pessoal que trabalha na rede não tem
nenhuma orientação teórica, vivem cadastrando os MAC`s das maquinas com
letras acima de "F" e as vezes não separam os campos com os ":", o
segundo problema já foi resolvido, mas o teste para verificar se
incluíram caracteres estranhos ao padrão do MAC quando errado ele avisa,
mas quando certo o script congela e não segue, vejam o teste abaixo:
[ ! "$(echo "${V_mac}" | tr -d [a-fA-F0-9:] )" ] || echo 'Mac erro !' &&
continue
Alguma luz ???
Cordialmente,
Marcelo G. Dias
Vulgo : Bahianeiro
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
[As partes desta mensagem que não continham texto foram removidas]