PHP逆引き大全 516の極意

モバイルプログラミングの極意 - Tips477 モバイルキャリアの判別②

登録タグ
PHP
Icon comment count 0
Icon stock count 0

8-2モバイルプログラミングの基本 Tips477 モバイルキャリアの判別②

Level3

PointIPアドレスで判別する

「476」ではユーザエージェントでキャリアを判別しました。より確実にキャリアを判別するためにIPアドレスで判別する方法も紹介します。

各キャリアではモバイル端末からアクセスしてくる際のIPアドレスを公開しています。Webサーバ側でモバイル限定のサービスなどをする際にIPアドレスにより制限をしたりする際に便利です。またこれらIPアドレスを利用してキャリアを判別することも可能です。

これらIPアドレスはCIDR形式(ネットマスクを使いIPアドレスを帯域として示す)で公開されています。例えば、192.168.0.0/24 となっていれば、IPアドレスは192.168.0.1〜192.168.0.254の範囲となります。このため、PHPプログラムではこれらCIDR形式のIPアドレス帯域からアクセスしてきた端末のIPアドレスを判断できるように工夫が必要となります。

リスト1の13行目でアクセスしてきた端末のIPアドレスを、ip2long関数で(適当な)文字列に変換します。(適当な)文字列とはなんでしょうか? これはIPアドレスのドットで区切られた各値を16進数に変換しそれを繋げ、さらに16進数を10進数に変換したものです。さらにこの数を2進数に変換した場合に、最上位が0であれば正、最上位が1であれば負として符号をつけ、10進数の値を返します。これでIPアド

出典情報

Medium

PHP逆引き大全 516の極意

  • 著者: 大家 正登, 茂木 健一, 鮫島 康浩, 谷中 志織

コメント

    コメントはありません