Re: Funciones para iterar sobre tipos inet/cidr

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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