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) が表示される。 


(参考資料)