X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> определяется Ip адрес пользователя в Vbulletin. Помогите разобраться., Выдаёт IP сервера для всех
SammoLove
SammoLove
Topic Starter сообщение 19.4.2010, 13:41; Ответить: SammoLove
Сообщение #1


Помогите, пожалуйста, разобраться. Движок vbulletin определяет IP адрес сервера вместо адреса пользователя. Из-за этого проблемы. Сервер linux, apache, nginx. Всё последних стабильных версий. Я нашёл кусок кода в файле class_core.php, который по всей видимости как раз и определяет IP. Можете пробежать взглядом и дать совет? Что может быть не так

/**
    * Fetches the IP address of the current visitor
    *
    * @return    string
    */
    function fetch_ip()
    {
        return $_SERVER['REMOTE_ADDR'];
    }

    /**
    * Fetches an alternate IP address of the current visitor, attempting to detect proxies etc.
    *
    * @return    string
    */
    function fetch_alt_ip()
    {
        $alt_ip = $_SERVER['REMOTE_ADDR'];

        if (isset($_SERVER['HTTP_CLIENT_IP']))
        {
            $alt_ip = $_SERVER['HTTP_CLIENT_IP'];
        }
        else if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches))
        {
            // try to avoid using an internal IP address, its probably a proxy
            $ranges = array(
                '10.0.0.0/8' => array(ip2long('10.0.0.0'), ip2long('10.255.255.255')),
                '127.0.0.0/8' => array(ip2long('127.0.0.0'), ip2long('127.255.255.255')),
                '169.254.0.0/16' => array(ip2long('169.254.0.0'), ip2long('169.254.255.255')),
                '172.16.0.0/12' => array(ip2long('172.16.0.0'), ip2long('172.31.255.255')),
                '192.168.0.0/16' => array(ip2long('192.168.0.0'), ip2long('192.168.255.255')),
            );
            foreach ($matches[0] AS $ip)
            {
                $ip_long = ip2long($ip);
                if ($ip_long === false)
                {
                    continue;
                }

                $private_ip = false;
                foreach ($ranges AS $range)
                {
                    if ($ip_long >= $range[0] AND $ip_long <= $range[1])
                    {
                        $private_ip = true;
                        break;
                    }
                }

                if (!$private_ip)
                {
                    $alt_ip = $ip;
                    break;
                }
            }
        }
        else if (isset($_SERVER['HTTP_FROM']))
        {
            $alt_ip = $_SERVER['HTTP_FROM'];
        }

        return $alt_ip;
    }
}


Сообщение отредактировал SammoLove - 19.4.2010, 13:43
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
life
life
сообщение 19.4.2010, 14:26; Ответить: life
Сообщение #2


к хостеру, у него проблемы

Сообщение отредактировал life - 19.4.2010, 14:26
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
SammoLove
SammoLove
Topic Starter сообщение 20.4.2010, 15:23; Ответить: SammoLove
Сообщение #3


Эээ, хостера нет. У меня VDS.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 727 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Плагин для Wordpress. Вывод контента в зависимости от страны пользователя.
8 neuch 2299 19.9.2022, 7:51
автор: neuch
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1702 11.12.2020, 0:48
автор: Levels
Открытая тема (нет новых ответов) Помогите кто нибудь получить партнерку Росбанк!
7 heisenberg_mw 2341 7.8.2020, 9:28
автор: heisenberg_mw
Открытая тема (нет новых ответов) Помогите найти тему пожалуйста
7 virtas 12507 24.7.2020, 17:02
автор: -JamesSmips-


 



RSS Текстовая версия Сейчас: 23.4.2024, 12:06
Дизайн