From: | Leonel Nunez <lnunez(at)enelserver(dot)com> |
---|---|
To: | Gunnar Wolf <gwolf(at)gwolf(dot)org> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Funciones para iterar sobre tipos inet/cidr |
Date: | 2005-04-14 17:58:46 |
Message-ID: | 425EAF56.8040400@enelserver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Gunnar Wolf wrote:
>Hola gente,
>
>Estoy haciendo un programita para administración de redes. Decidí que
>el usuario final debe tener tan poco contacto directo con la BD como
>sea posible... Pero no encuentro cómo hacer esto: Tengo las siguientes
>tablas:
>
>CREATE TABLE networks (
> id serial PRIMARY KEY,
> name text,
> netaddr cidr NOT NULL,
> gateway inet
>);
>
>CREATE TABLE ip (
> ip inet PRIMARY KEY,
> mac macaddr,
>(...y otros campos irrelevantes)
>);
>
>Ahora, quiero montar un trigger que al crear una red, cree todas las
>entradas para las IPs contenidas en ella. Mi idea original era
>comenzar con thisip:=network(netaddr) e ir creando las entradas en ip
>una a una, incrementando la IP en uno cada vez, hasta que deje de ser
>verdadero que thisip << netaddr.
>
>¿Mi problema? Que no encuentro manera de efectuar aritmética sobre
>direcciones IP :-( ¿Cómo puedo iterar (desde un trigger) sobre las
>direcciones de una red?
>
>Saludos,
>
>
>
Necesitarias jugar con masklen ( ip )
y hacer la magia con el trigger
leonel
From | Date | Subject | |
---|---|---|---|
Next Message | Gunnar Wolf | 2005-04-14 18:05:16 | Re: Funciones para iterar sobre tipos inet/cidr |
Previous Message | Gunnar Wolf | 2005-04-14 17:28:02 | Funciones para iterar sobre tipos inet/cidr |