Re: [PERFORM] Filter certain range of IP address. - Mailing list pgsql-performance

From Dinesh Chandra 12108
Subject Re: [PERFORM] Filter certain range of IP address.
Date
Msg-id 705a033c9efe4a75830cc76b154e18a0@cyient.com
Whole thread Raw
In response to Re: [PERFORM] Filter certain range of IP address.  (vinny <vinny@xs4all.nl>)
Responses Re: [PERFORM] Filter certain range of IP address.
List 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.chandra@cyient.com 
Plot No. 7, NSEZ, Phase-II ,Noida-Dadri Road, Noida - 201 305,India.

-----Original Message-----
From: vinny [mailto:vinny@xs4all.nl] 
Sent: 07 April, 2017 7:52 PM
To: Dinesh Chandra 12108 <Dinesh.Chandra@cyient.com>
Cc: pgsql-performance-owner@postgresql.org; pgsql-performance@postgresql.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.chandra@cyient.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
bitsmatch, 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

pgsql-performance by date:

Previous
From: Gerardo Herzig
Date:
Subject: Re: [PERFORM] Understanding PostgreSQL query execution time
Next
From: "David G. Johnston"
Date:
Subject: Re: [PERFORM] Filter certain range of IP address.