Re: Filter certain range of IP address.

From: Dinesh Chandra 12108 <Dinesh(dot)Chandra(at)cyient(dot)com>
To: vinny <vinny(at)xs4all(dot)nl>
Cc: "pgsql-performance-owner(at)postgresql(dot)org" <pgsql-performance-owner(at)postgresql(dot)org>, "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org>
Subject: Re: Filter certain range of IP address.
Date: 2017-04-07 15:18:58
Message-ID: 705a033c9efe4a75830cc76b154e18a0@cyient.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Dear Vinny,

Thanks for your valuable replay.

but I need a select query, which select only that record which starts from IP "172.23.110" only from below table.

xxx 172.23.110.175
yyy 172.23.110.178
zzz 172.23.110.177
aaa 172.23.110.176
bbb 172.23.111.180
ccc 172.23.115.26

Regards,
Dinesh Chandra
|Database administrator (Oracle/PostgreSQL)| Cyient Ltd. Noida.
------------------------------------------------------------------
Mobile: +91-9953975849 | Ext 1078 |dinesh(dot)chandra(at)cyient(dot)com
Plot No. 7, NSEZ, Phase-II ,Noida-Dadri Road, Noida - 201 305,India.

-----Original Message-----
From: vinny [mailto:vinny(at)xs4all(dot)nl]
Sent: 07 April, 2017 7:52 PM
To: Dinesh Chandra 12108 <Dinesh(dot)Chandra(at)cyient(dot)com>
Cc: pgsql-performance-owner(at)postgresql(dot)org; pgsql-performance(at)postgresql(dot)org
Subject: Re: [PERFORM] Filter certain range of IP address.

On 2017-04-07 16:13, Dinesh Chandra 12108 wrote:
> Hi expert,
>
> May I know how to select a range of IP address.
>
> Example: I have number of different-2 IP's present in a table.
>
> I HAVE TO SELECT ONLY THAT IP ADDRESS WHICH DOES NOT START FROM PREFIX
> “172.23.110”.
>
> Thanks in advance
>
> REGARDS,
>
> DINESH CHANDRA
>
> |DATABASE ADMINISTRATOR (ORACLE/POSTGRESQL)| CYIENT LTD. NOIDA.
>
> ------------------------------------------------------------------
>
> Mobile: +91-9953975849 | Ext 1078 |dinesh(dot)chandra(at)cyient(dot)com
>
> Plot No. 7, NSEZ, Phase-II ,Noida-Dadri Road, Noida - 201 305,India.

If you store the ip address as the INET datatype then you can use the INET operators to see if any arbitraty number of bits match, the first 3 bytes means the first 24 bits:

SELECT '172.23.110.55'::inet << '172.23.110.1/24'::inet;
?column?
----------
t
(1 row)

SELECT '272.23.110.55'::inet << '172.23.110.1/24'::inet;
?column?
----------
f
(1 row)

See also: https://www.postgresql.org/docs/9.3/static/functions-net.html

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message David G. Johnston 2017-04-07 15:29:29 Re: Filter certain range of IP address.
Previous Message Gerardo Herzig 2017-04-07 15:15:37 Re: Understanding PostgreSQL query execution time