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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] hexadecimal / traffic control


From: Tiago Barcellos Peczenyj
Subject: Re: [shell-script] hexadecimal / traffic control
Date: Thu, 27 Jul 2006 22:15:18 -0300

use este script awk

acho que da pra resolver com awk

$ echo '0a0a2200/ffffff00' | awk  --non-decimal-data -F '/' -f teste.awk
10.10.34.0 / 255.255.255.0

$cat teste.awk
#inicio
function x(s,p){
  return sprintf("%d","0x"z(s,p))
}
function z(s,p){
  return substr(s,p,2)
}
function y(s) {
  return x(s,1)"."x(s,3)"."x(s,5)"."x(s,7)
}

[]'s Tiago
{
  print y($1),"/",y($2)
}
#fim


On 7/27/06, Reinaldo Carvalho <address@hidden> wrote:
saudações!

estou fazendo uma interface para o "tc" que é comando que manipula as
"qdisc"s, "class"s e "filter"s, assim como, manipula os algotimos de
controle da fila de pacotes do linux (htb, cbq, tbf, ...).

Quem tabalha com isso, pode ir conferindo a evolução:
http://www.nautilus.com.br/~rei/material/lost+found/scripts/tc-tool.sh

Estou empacando na hora de manipular hexadecimais. Na parte de
transformar de hexadecimal para decimal, e de decimal para
hexadecimal.

Mais especificamente:

0a0a2200/ffffff00
O exemplo acima é um ip 0a0a2200 (0x0a 0x0a 0x22 0x00) 10.10.34.0
E a máscara ffffff00 (0xff 0xff 0xff 0x00) 255.255.255.0

Como converter isso?

00500051/ffffffff
No exemplo acima, é porta de origem 0050 (0x0050) 80
Máscara da porta ffff (0xffff) 65535
Porta de destino 0051 (0x0051) 81
Máscara da porta ffff (0xffff) 65535

(pra quem nunca ouviu falar de máscara da porta, o 65535 é o mesmo de
255.255.255.255 para o ip, mas isso não vem ao caso)

Em sumo, preciso conventer:
0a0a2200/ffffff00 para 10.10.34.0/255.255.255.0
00500051/ffffffff para 80/65535 e 81/65535


[]s!!


--
Reinaldo Carvalho
Debian Sarge 3.1 - Linux User: #238310
Prodepa - address@hidden


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil


Links do Yahoo! Grupos










--
Tiago B Peczenyj
Linux User #405772

# cd /pub
# more beer


reply via email to

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