masato: 2009年4月アーカイブ

携帯サイトを作ってるとIPアドレスから携帯キャリアを判別することが多いですが、これを高速に判定するsymfonyプラグインを作りました。

sfMobileIPPlugin - openpear

元ネタ: PHPで高速に携帯ゲートウェイのIPから携帯キャリアを判別する - グニャラくんのグニャグニャ備忘録@はてな

やってることは大体同じです。

隣り合うIPアドレス帯をまとめている

各キャリアが公開しているIPアドレス帯は隣あった領域である事が多いので、連続したIPアドレス帯は一つにまとめるようにしてます。
これにより、検索領域が 1/3 ぐらいに減りました。

まとめたIPアドレス帯はキャッシュしている

まとめたIPアドレス帯はソートした後、キャッシュファイルに書き込むようにしてます。
前処理は最初の1回だけです。

バイナリサーチ

前処理されたIPアドレス帯はソートしてあるので、バイナリサーチしてます。

インストール(symfony 1.0)

僕はsymfony 1.0を使ってるので、バイナリパッケージを用意しました。
次のコマンドでインストールできます。

$ symfony plugin-install http://svn.openpear.org/sfMobileIPPlugin/pkgs/sfMobileIPPlugin-0.0.1.tgz

インストール(symfony 1.1以降)

試してないのでわかりませんが、たぶんこんな感じ。

$ symfony plugin:add-channel openpear.org
$ symfony plugin:install openpear.org/sfMobileIPPlugin

使い方

sfMobileIP::carrier()を呼ぶとIPアドレスから判定して携帯キャリアの情報(docomo, ezweb, softbank, willcom, pc)を返してくれます。

echo sfMobileIP::carrier();

よかったら使ってくださいー。

@IT自分戦略研究所の今週のリーダーという企画で取材してもらいました!

不況下こそチャレンジを。客員起業家 尾藤正人の挑戦 - @IT自分戦略研究所

客員起業家となったばかりで、まだ絶賛一人で活動中の身でリーダーと呼べるのかも微妙な感じではありますが、よかったらご覧ください!

このアーカイブについて

このページには、masato2009年4月に書いたブログ記事が含まれています。

前のアーカイブはmasato: 2009年3月です。

次のアーカイブはmasato: 2009年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。