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