Funciones para iterar sobre tipos inet/cidr

From: Gunnar Wolf <gwolf(at)gwolf(dot)org>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Funciones para iterar sobre tipos inet/cidr
Date: 2005-04-14 17:28:02
Message-ID: 20050414172802.GA21517@gwolf.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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,

--
Gunnar Wolf - gwolf(at)gwolf(dot)org - (+52-55)1451-2244 / 5554-9450
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Leonel Nunez 2005-04-14 17:58:46 Re: Funciones para iterar sobre tipos inet/cidr
Previous Message Roberto Cesar Najera 2005-04-14 17:26:30 tipo de dato money