[ticket/9091] Extract IPv4 address from addresses mapped into IPv6.

PHPBB3-9091
This commit is contained in:
Andreas Fischer 2010-07-23 12:48:01 +02:00
parent fc25fe694a
commit e5d5d58172
3 changed files with 13 additions and 0 deletions

View file

@ -285,6 +285,17 @@ class session
break; break;
} }
// Quick check for IPv4-mapped address in IPv6
if (stripos($ip, '::ffff:') === 0)
{
$ipv4 = substr($ip, 7);
if (preg_match(get_preg_expression('ipv4'), $ipv4))
{
$ip = $ipv4;
}
}
// Use the last in chain // Use the last in chain
$this->ip = $ip; $this->ip = $ip;
} }

View file

@ -119,6 +119,7 @@ $db->sql_connect($dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, false);
unset($dbpasswd); unset($dbpasswd);
$user->ip = (!empty($_SERVER['REMOTE_ADDR'])) ? htmlspecialchars($_SERVER['REMOTE_ADDR']) : ''; $user->ip = (!empty($_SERVER['REMOTE_ADDR'])) ? htmlspecialchars($_SERVER['REMOTE_ADDR']) : '';
$user->ip = (stripos($user->ip, '::ffff:') === 0) ? substr($user->ip, 7) : $user->ip;
$sql = "SELECT config_value $sql = "SELECT config_value
FROM " . CONFIG_TABLE . " FROM " . CONFIG_TABLE . "

View file

@ -1236,6 +1236,7 @@ class install_install extends module
$current_time = time(); $current_time = time();
$user_ip = (!empty($_SERVER['REMOTE_ADDR'])) ? htmlspecialchars($_SERVER['REMOTE_ADDR']) : ''; $user_ip = (!empty($_SERVER['REMOTE_ADDR'])) ? htmlspecialchars($_SERVER['REMOTE_ADDR']) : '';
$user_ip = (stripos($user_ip, '::ffff:') === 0) ? substr($user_ip, 7) : $user_ip;
if ($data['script_path'] !== '/') if ($data['script_path'] !== '/')
{ {