ワードプレスでサイトの訪問者のIPやユーザーエージェントを取得する方法をご紹介いたします。
ワードプレスで訪問者のIPを取得し、IPV4かIPV6かを判定する
IPとは、インターネットに接続するコンピューターを識別する数字列で、IPV4とIPV6(より多くのIPを割り当てられるように拡張したもの)の2種類があります。
訪問者のIPを取得するには、下記のようなPHPコードを使用します。
$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : false; if($ip!=false){ if(inet_pton($ip) === false){ $ip=false; } }
$_SERVER[‘REMOTE_ADDR’]からIPを取得し、inet_pton関数でIPアドレスをバイナリに変換できるかどうかで、ちゃんと取得できているかを判定します。
さらに、IPV4かIPV6かを判定するには下記のようなコードを追加します。
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { //ipv6 }else{ //ipv4 }
php のfilter_var関数にFILTER_FLAG_IPV6フラグを渡すとIPV6かどうかを判定してくれます。
ユーザエージェントも取得する
ユーザーがどのようなブラウザーでアクセスしてきたかも下記のようなコードで簡単に取得できます。
$useragent = $_SERVER['HTTP_USER_AGENT'];
↓ useragentの例
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36
ユーザーエージェントの各項目の意味は下記のようになります。
Mozilla/5.0 ← 昔のブラウザ(Netscape Navigator → Mozilla)からの名残で互換性維持のために付与されるあまり意味をなさない文字列です
(Windows NT 10.0; Win64; x64) ← 利用しているOSや環境を表します
AppleWebKit/537.36 (KHTML, like Gecko) ← ブラウザの レンダリングエンジン。KDE のレンダリングエンジンが元となっており、Mozilla Firefox(Geckoエンジン)と同じように動作することを示します。
Chrome/124.0.0.0 ← ブラウザ本体とそのバージョン
Safari/537.36 ← Safariブラウザ と互換動作 することを意味します
※ただ、$_SERVER[‘HTTP_USER_AGENT’]はユーザー側で変更可能な為、必ずしも正確でない場合がございます。