shell-script-pt
[Top][All Lists]
Advanced

[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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]