この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
PHP と IP アドレス
サイトへの訪問者から取得できる情報の中で、重要とされるものに IP アドレスがあります。
今回は PHP にて IP アドレスを取得する方法と IP アドレスの活用法。または IP アドレスを扱う際の注意事項を確認していきます。
IPアドレスを取得する方法
サイトに訪れたユーザーの IP アドレスを取得する方法は、PHP のサーバー情報の環境変数である
を使用する方法が有名です。
IPアドレスを取得するサンプルプログラム
1 2 |
<?php echo $_SERVER['REMOTE_ADDR']; |
サンプルプログラムの実行例
1 |
157.112.187.21 |
IPアドレスの注意点
PHP の $_SERVER[‘REMOTE_ADDR’] で取得した IP アドレスは多くは訪問者が利用している IP アドレスを示します。ただ訪問者の本当の IP アドレスである保証はありません。特にプロキシサーバーを経由してサイトに訪れたときは、プロキシサーバーの IP アドレスが表示されるので注意しましょう。
IP アドレスからホスト名を取得する
IP アドレスからホスト名を取得することができます。ホスト名の取得には数十秒ほどの時間がかかる可能性があるため、利用者が操作するページに実装するとレスポンスが悪くなる可能性があるので注意が必要です。またホスト名が必ず取得できる保証がない点も考慮したプログラムの実相を行いましょう。
ホスト名を取得する方法
ホスト名を取得するサンプルプログラム
1 2 |
<?php echo gethostbyaddr('157.112.187.21'); |
サンプルプログラムの実行例
1 |
sv20.stars.ne.jp |
IP アドレス(IPv4)を数値に変換する
IP アドレス(IPv4)を長整数表現に変換する方法をご紹介します。
IP アドレスが指定した範囲内であるかを確認するときや、データベースに保存した IP アドレスにインデックスを設定したいときに IP アドレスを数値に変換すると便利です。
IP アドレスを数値に変換する方法
IP アドレスを数値に変換するサンプルプログラム
1 2 |
<?php echo ip2long('157.112.187.21'); |
サンプルプログラムの実行例
1 |
2641410837 |