【javascript】IPアドレスを取得する方法
javascriptを使ってIPアドレスを取得する方法についてまとめています。
javascriptではIPアドレスは取得できない
javascriptでユーザーエージェントなどの情報を取得する方法にも書いていますが、実はjavascriptではユーザーのIPアドレスは取得できません。
ひと工夫する必要があります。
PHPと組み合わせる
PHPではサーバ変数から簡単にアクセスしてきたユーザーのIPアドレスを取得できます(詳細はIPアドレス、リンク元、アクセスページ、ユーザーエージェントの取得)。
そのためPHPでユーザーのIPアドレスを取得し、javascriptに渡してあげれば結果的にjavascriptでIPアドレスを取得できます。
有用性
PHPを利用できる環境下でわざわざjavascriptにIPアドレスを渡してそれで取得できた!とやっても意味はありませんが、javascriptにIPアドレスを渡してゴニョゴニョしたいときに役にたちます。
具体例としては、GoogleAnalyticsのカスタム変数の値にIPアドレスを渡したりです(参考:【GoogleAnalytics】IPアドレスの取得方法)。
IPアドレスをjavascriptに渡す
ということで、PHPでIPアドレスを取得し、それをjavascriptに渡してみたいと思います。
<script type="text/javascript"> //PHPでIPアドレスを取得し、それを変数「ipAddress」に代入 var ipAddress = '<?php echo $_SERVER['REMOTE_ADDR']; ?>'; //出力 document.write(ipAddress); </script>
IPアドレスを変数に渡してしまえば、あとは任意の処理が可能になると思います。
PHPが使えない環境下でもIPアドレスを取得する
ここからが目玉なのですが、PHPが使えない環境下でもjavascriptにIPアドレスを渡して取得させることができます。
それは、PHPが使える別のサーバーにPHPファイルを設置し、それを読み込めば良いです。
外部PHPファイルからIPアドレスを取得
具体的な方法ですが、PHPが使用できるサーバーに以下を記述したPHPファイルを設置します。
詳細な説明はjavascriptでPHPファイルを実行してそれを出力する方法を参照してください。
<?php //javascriptファイルとして処理させる header("Content-type: application/x-javascript"); //IPアドレスを変数に代入 $ip_address = $_SERVER['REMOTE_ADDR']; //スクリプトの出力 echo "var ipAddress = '" . $ip_address . "';"; ?>
そしてこのファイルをjavascriptファイルとして読み込むコードをサイトに設置します。
<script type="text/javascript" src="http://○○○.com/△△△.php"></script> <script> document.write(ipAddress); </script>
グローバル変数にIPアドレスが格納されているので、あとはそれを受け取ればPHPが使用できない環境でもIPアドレスを取得してjavascriptに渡すことができます。
あわせて読んでほしい!
コメント
まだコメントはありません。