Обсуждение: cidr question

Поиск
Список
Период
Сортировка

cidr question

От
"Mir S Islam"
Дата:
maybe I am not understanding it right. Here is my problem.

I have a table like this
 Attribute   |           Type           | Modifier
--------------+--------------------------+----------ip           | cidr                     | not null

with following rows     ip
---------------10.0.0.1/3210.0.0.50/3210.0.0.255/3211.0.0.0/3211.0.1.200/3211.0.1.20/32
(6 rows)

should not the command
DELETE from ip_space where ip = '11.0.1.0/24'::cidr
delete last two rows ? But it does not delete anything. Basically I would
like to be able to delete a whole range or block of ip/network addresses.

I suppose I could rewrite the above sql as
delete from ip_space where ip >='11.0.1.0/24'::cidr and ip
<='11.0.2.0/24'::cidr;
Then it works. But I should not have to do that. Right ?

Thanks in advance. Please email and post here.

Mir







Re: cidr question

От
darcy@druid.net (D'Arcy J.M. Cain)
Дата:
Thus spake Mir S Islam
> maybe I am not understanding it right. Here is my problem.
> 
> I have a table like this
> 
>   Attribute   |           Type           | Modifier
> --------------+--------------------------+----------
>  ip           | cidr                     | not null
> 
> with following rows
>       ip
> ---------------
>  10.0.0.1/32
>  10.0.0.50/32
>  10.0.0.255/32
>  11.0.0.0/32
>  11.0.1.200/32
>  11.0.1.20/32
> (6 rows)
> 
> should not the command
> DELETE from ip_space where ip = '11.0.1.0/24'::cidr
> delete last two rows ? But it does not delete anything. Basically I would
> like to be able to delete a whole range or block of ip/network addresses.

What you want is the "Contained within" operator.  Note the different outputs
from these two queries.

select '11.0.1.200/32'::cidr << '11.0.1.0/24'::cidr;
select '11.0.1.200/32'::cidr << '11.1.1.0/24'::cidr;

-- 
D'Arcy J.M. Cain <darcy@{druid|vex}.net>   |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 425 1212     (DoD#0082)    (eNTP)   |  what's for dinner.