IPアドレスを元に携帯端末かどうか判定する。
一般的にモバイルサイトには UserAgent を利用して携帯端末かPCからかを判定することが多いようですが、UserAgentは簡単に偽装できてしまうため、より確実な判定手段として各キャリアが公開しているIPアドレス帯域を元にフィルタリングを行う方法があります。
今回はそれをまとめた関数を作ってみました。外部のIPリストファイルを参照して判定しますので、帯域の変更時にも対応が割と楽かな・・・と思います。
■各キャリアIP帯域情報リストファイル(このファイルをPHPから呼び出せる場所に配置します。)
■簡単な使い方
1.まず is_mobile_ip.func.php とIP帯域情報リストファイルをサイト内にアップロードします。
2.is_mobile_ip.func.php を requireもしくはincludeします。
3.is_mobile_ip("IPアドレス","リストファイルへのパス")の形で関数をコールします。
4.関数はリストファイルと照合し該当した場合は、リストファイルのセクション名([]内)を返します。
該当しなかった場合は、false を返します。
//IPとリストファイル名を引数に設定して関数を実行する。 require_once "is_mobile_ip.func.php"; $result = is_mobile_ip( $_SERVER['REMOTE_ADDR'] , "ipaddress.ini" ); echo $result; //文字列 softbank , ezweb , docomo , willcom , 空白(false) が表示される。
(参考資料)