Home > pgsql > SQLでIPアドレスから携帯のキャリアを判定する

SQLでIPアドレスから携帯のキャリアを判定する

PostgreSQLのinet型を使って、IPアドレスから携帯のキャリアを判定してみます。

とりあえずIPアドレスの情報源。

そのまんまのテーブルを作りましょう。

create table  carrier_ip (
    carrear text,
    ip  inet
);

copy carrier_ip from stdin;
DoCoMo  210.153.84.0/24
DoCoMo  210.136.161.0/24
DoCoMo  210.153.86.0/24
DoCoMo  210.153.87.0/24
au  210.169.40.0/24
au  210.196.3.192/26
...
SoftBank    210.175.1.128/25
SoftBank    210.228.189.0/24
SoftBank    211.8.159.128/25
\.

で、検索します。

=> select * from carrier_ip where ip >> '210.151.9.130';

 carrear  |        ip
----------+------------------
 SoftBank | 210.151.9.128/26
(1 row)

簡単♪

>><<という演算子は、内包されているかを返します。

ネットワークアドレス型関数と演算子:PostgreSQLドキュメント

Writeback:1

from 2007/08/01 (Wed) 17:33:34
Comment Form

writeback message: Ready to post a comment.

TrackBack ping me at
http://www.mono-space.net/blog/pgsql/e070511_ipaddress.trackback

Page Top