PHPでクライアントのIPアドレスを取得する方法 質問する

PHPでクライアントのIPアドレスを取得する方法 質問する

PHP を使用してクライアントの IP アドレスを取得するにはどうすればよいですか?

IP アドレスを通じて自分の Web サイトにログインしたユーザーの記録を保持したいと考えています。

ベストアンサー1

何をするにしても、クライアントから送信されたデータを信頼しないようにしてください。$_SERVER['REMOTE_ADDR']接続相手の実際の IP アドレスが含まれています。これが最も信頼できる値です。

ただし、プロキシ サーバーの背後にある場合、プロキシが を設定した可能性があります$_SERVER['HTTP_X_FORWARDED_FOR']が、この値は簡単に偽装できます。たとえば、プロキシを使用せずに誰かが設定したり、IP がプロキシの背後にある LAN の内部 IP であったりする可能性があります。

つまり、 を保存する場合は、値必ず保存し$_SERVER['HTTP_X_FORWARDED_FOR']てください。たとえば、両方の値をデータベース内の異なるフィールドに保存します。$_SERVER['REMOTE_ADDR']

IP を文字列としてデータベースに保存する場合は、少なくとも45 文字分のスペースがあることを確認してください。IPv6今後も使用され続ける予定であり、これらのアドレスは古い IPv4 アドレスよりも大きいです。

(IPv6では最大39文字が使用されるが、特別なIPv4 アドレスの IPv6 表記完全な形式では最大 45 文字になります。したがって、何をしているのかわかっている場合は 39 文字を使用できますが、設定して忘れたい場合は 45 文字を使用します。

おすすめ記事