静的サイトや外部サービスを利用したサイト等で、PHPの埋め込み不可でJavaScriptだけで訪問者のIPアドレスを取得したい場合についてメモ。
- グローバルIPアドレスを取得出来るipifyのAPI(https://api.ipify.org/?format=json)を読み込む。
- jsonの中のipというキーでIPアドレスが取得出来るので、イベントトラッキングを仕込む。
JavaScript
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <script> $.getJSON("https://api.ipify.org/?format=json", function() { }) .success(function( data ) { // analytics.jsの場合 ga('send', 'event', { eventCategory: 'IPAddress', eventAction: location.href, eventLabel: data.ip }); // gtag.jsの場合 gtag('event', 'IPAddress', { 'event_category': 'IPAddress', 'event_action': location.href, 'event_label': data.ip }); }) .error(function(jqXHR, textStatus, errorThrown) { console.log("エラー:" + textStatus); console.log("テキスト:" + jqXHR.responseText); }) .complete(function() { }); </script>
WordPressサイトなどでPHPが使えるようであれば、以下の関数でIPアドレスを取得できる。
PHP
<?php echo $_SERVER['REMOTE_ADDR']; ?>
こちらのサービスで、whois情報が確認可能
IPアドレスと企業情報マッピングしてGoogleAnalyticsに反映してくれる「どこどこJP」というサービス。 機会あったら使ってみたい