アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在携帯電話のIPアドレスを一覧に書き出して、振り分けを行おうとしています。

今考えているのは、ip.iniというファイルに携帯キャリアが発表しているIPアドレスを書き出すとします。
それを$_SERVER['REMOTE_ADDR']でIPアドレスを取得してip.iniに該当するものがあれば携帯用に振り分けるという作業を行いたいと考えています。

ですが、キャリアから発表されているIPアドレスは210.153.84.0/24のようにプレフィックス表記になっています。
全てのIPアドレスを書き出してもいいのですが、そうすると量が膨大になってしまいますし、帯域が増えた場合に面倒になります。
比較する関数も見つからなかったのですが、何か良い方法はありますでしょうか?

A 回答 (2件)

Net_IPv4::parseAddress()の関数を利用すればCIDR アドレスをパース


できますので、記録はCIDRにしたままで比較する関数をおつくりになっては
如何でしょうか
    • good
    • 0

携帯用ではないが、以前私がネットワークアドレスを判定した方法です。



ネッtワークアドレスの開始と終了を整数(4オクテッドを整数に変換)にし
PostgreSQLにテーブルを作成。
対象ipアドレスを整数変換し、開始以上終了以下を検索

4byte の整数になるので
php は --enable-bcmath オプションを付けてコンパイル。
計算は BCMath 任意精度数学関数 を使います。
詳しくはマニュアルを読んでください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!