- 2007-05-11
- pgsql
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)
簡単♪
>>や<<という演算子は、内包されているかを返します。