PHP に、ユーザーの IP アドレスを取得しようとするコードが少しあります。
// Test if it is a shared client
if (! empty($_SERVER['HTTP_CLIENT_IP'])) {
$userIP = $_SERVER['HTTP_CLIENT_IP'];
}
// Is it a proxy address?
elseif (! empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$userIP = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else {
$userIP = $_SERVER['REMOTE_ADDR'];
}
次に、文字列を整数に変換する関数$userIP
を使用して MySQL テーブルに格納します。MySQL の関数を使用してこの値を取得できます。INET_ATON()
INET_NTOA()
ほとんどの場合、完全に機能します。ただし0.0.7.102
、たとえば、のような IP を取得することがあります。
これらの機能が IPv6 で動作しないことはわかっていますが、この問題は別の原因で発生する可能性がありますか? すでにIPv6を使用している人はたくさんいますか? どうすればこれに対処できますか?
ありがとう!