Не отображается информация об IP-адресе
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
athlant64
- phpBB 1.0.0
- Сообщения: 4
- Стаж: 14 лет 6 месяцев
- Благодарил (а): 2 раза
Не отображается информация об IP-адресе
Здравствуйте.
После того как хостер обновил оборудование и перенес наш форум на новый сервер перестала отображаться информация об ip-адресе.
Что необходимо сделать чтобы эта функция вновь заработала?
После того как хостер обновил оборудование и перенес наш форум на новый сервер перестала отображаться информация об ip-адресе.
Что необходимо сделать чтобы эта функция вновь заработала?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
athlant64
- phpBB 1.0.0
- Сообщения: 4
- Стаж: 14 лет 6 месяцев
- Благодарил (а): 2 раза
-
Djeday
- phpBB 2.0.7a
- Сообщения: 644
- Стаж: 14 лет 8 месяцев
- Благодарил (а): 108 раз
- Поблагодарили: 68 раз
Re: Не отображается информация об IP-адресе
Добрый день. После обновления форума до 3.0.11 перестала отображаться информация об IP адресе. Аналогично, как на скрине выше (пусто). С чем это может быть связано? Спасибо.
Я смею то, что можно человеку, кто смеет меньше - тот не человек.
-
c61
- phpBB 2.0.6
- Сообщения: 506
- Стаж: 13 лет 9 месяцев
- Благодарил (а): 42 раза
- Поблагодарили: 251 раз
Re: Не отображается информация об IP-адресе
В phpBB используется запрос к whois.arin.net (ipv4) или whois.sixxs.net (ipv6) по 43 порту через socket connection. Так что причины могут быть самые разнообразные... Можно выдрать из functions_user.php функцию user_ipwhois и сделать тестик.
-
Djeday
- phpBB 2.0.7a
- Сообщения: 644
- Стаж: 14 лет 8 месяцев
- Благодарил (а): 108 раз
- Поблагодарили: 68 раз
Re: Не отображается информация об IP-адресе
А если поподробнее?
Просто с таким не сталкивался еще.
Инфа о IP и хосте вообще не отображается... Пустота.
За вывод данной инфы отвечает functions_user.php? Просто заменял на чистый файл и ничего.
Просто с таким не сталкивался еще.
Инфа о IP и хосте вообще не отображается... Пустота.
За вывод данной инфы отвечает functions_user.php? Просто заменял на чистый файл и ничего.
Я смею то, что можно человеку, кто смеет меньше - тот не человек.
-
c61
- phpBB 2.0.6
- Сообщения: 506
- Стаж: 13 лет 9 месяцев
- Благодарил (а): 42 раза
- Поблагодарили: 251 раз
Re: Не отображается информация об IP-адресе
Легко. Берете вот такой скрипт:Обзываете его как-то (например, test.php). Копируете в корень к себе. В браузере набираете http://mysite.ru/test.php (mysite.ru - ваш сайт). В скрипте - $ip от яндекса. Если выдаются сообщения об ошибках - смотрите, на чём, я там немного echo понаставил. Если ничего не выдается - втыкаете ещё диагностики. Если все выдается и нет ошибок - подставляете ip какого-то пользователя, что не определялся, и снова проверяете.
Код: Выделить всё
<?php
$ip = "87.250.251.3";
echo "test ip=$ip<br /><br />";
$ipwhois = user_ipwhois($ip);
echo empty($ipwhois) ? "no results" : $ipwhois;
function user_ipwhois($ip)
{
if (empty($ip))
{
echo "empty url<br />";
return '';
}
if (preg_match(get_preg_expression('ipv4'), $ip))
{
// IPv4 address
$whois_host = 'whois.arin.net.';
}
else if (preg_match(get_preg_expression('ipv6'), $ip))
{
// IPv6 address
$whois_host = 'whois.sixxs.net.';
}
else
{
echo "error in ip<br />";
return '';
}
$ipwhois = '';
if (($fsk = @fsockopen($whois_host, 43)))
{
// CRLF as per RFC3912
fputs($fsk, "$ip\r\n");
while (!feof($fsk))
{
$ipwhois .= fgets($fsk, 1024);
}
@fclose($fsk);
} else
{
echo "error fsockopen<br />";
}
$match = array();
// Test for referrals from $whois_host to other whois databases, roll on rwhois
if (!preg_match('#ReferralServer: whois://(.+)#im', $ipwhois, $match))
{
echo "ReferralServer: whois: match not found<br />";
} else
{
if (strpos($match[1], ':') !== false)
{
$pos = strrpos($match[1], ':');
$server = substr($match[1], 0, $pos);
$port = (int) substr($match[1], $pos + 1);
unset($pos);
}
else
{
$server = $match[1];
$port = 43;
}
$buffer = '';
if (($fsk = @fsockopen($server, $port)))
{
fputs($fsk, "$ip\r\n");
while (!feof($fsk))
{
$buffer .= fgets($fsk, 1024);
}
@fclose($fsk);
}
// Use the result from $whois_host if we don't get any result here
$ipwhois = (empty($buffer)) ? $ipwhois : $buffer;
}
$ipwhois = htmlspecialchars($ipwhois);
// Magic URL ;)
// return trim(make_clickable($ipwhois, false, ''));
return str_replace(array("\n"),"<br />",$ipwhois);
}
function get_preg_expression($mode)
{
switch ($mode)
{
case 'email':
// Regex written by James Watts and Francisco Jose Martin Moreno
// http://fightingforalostcause.net/misc/2006/compare-email-regex.php
return '([\w\!\#$\%\&\'\*\+\-\/\=\?\^\`{\|\}\~]+\.)*(?:[\w\!\#$\%\'\*\+\-\/\=\?\^\`{\|\}\~]|&)+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,63})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)';
break;
case 'bbcode_htm':
return array(
'#<!\-\- e \-\-><a href="mailto:(.*?)">.*?</a><!\-\- e \-\->#',
'#<!\-\- l \-\-><a (?:class="[\w-]+" )?href="(.*?)(?:(&|\?)sid=[0-9a-f]{32})?">.*?</a><!\-\- l \-\->#',
'#<!\-\- ([mw]) \-\-><a (?:class="[\w-]+" )?href="(.*?)">.*?</a><!\-\- \1 \-\->#',
'#<!\-\- s(.*?) \-\-><img src="\{SMILIES_PATH\}\/.*? \/><!\-\- s\1 \-\->#',
'#<!\-\- .*? \-\->#s',
'#<.*?>#s',
);
break;
// Whoa these look impressive!
// The code to generate the following two regular expressions which match valid IPv4/IPv6 addresses
// can be found in the develop directory
case 'ipv4':
return '#^(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$#';
break;
case 'ipv6':
return '#^(?:(?:(?:[\dA-F]{1,4}:){6}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:::(?:[\dA-F]{1,4}:){0,5}(?:[\dA-F]{1,4}(?::[\dA-F]{1,4})?|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:):(?:[\dA-F]{1,4}:){4}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,2}:(?:[\dA-F]{1,4}:){3}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,3}:(?:[\dA-F]{1,4}:){2}(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,4}:(?:[\dA-F]{1,4}:)(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,5}:(?:[\dA-F]{1,4}:[\dA-F]{1,4}|(?:(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(?:\d{1,2}|1\d\d|2[0-4]\d|25[0-5])))|(?:(?:[\dA-F]{1,4}:){1,6}:[\dA-F]{1,4})|(?:(?:[\dA-F]{1,4}:){1,7}:)|(?:::))$#i';
break;
case 'url':
case 'url_inline':
$inline = ($mode == 'url') ? ')' : '';
$scheme = ($mode == 'url') ? '[a-z\d+\-.]' : '[a-z\d+]'; // avoid automatic parsing of "word" in "last word.http://..."
// generated with regex generation file in the develop folder
// rus links patch
return "[a-z]$scheme*:/{2}(?:(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})+|[0-9.]+|\[[\pLa-z0-9.]+:[\pLa-z0-9.]+:[\pLa-z0-9.:]+\])(?::\d*)?(?:/(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?";
//
break;
case 'www_url':
case 'www_url_inline':
$inline = ($mode == 'www_url') ? ')' : '';
// rus links patch
return "www\.(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})+(?::\d*)?(?:/(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?";
//
break;
case 'relative_url':
case 'relative_url_inline':
$inline = ($mode == 'relative_url') ? ')' : '';
// rus links patch
return "(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*(?:/(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@|]+|%[\dA-F]{2})*)*(?:\?(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?(?:\#(?:[\pLa-z0-9\-._~!$&'($inline*+,;=:@/?|]+|%[\dA-F]{2})*)?";
//
break;
case 'table_prefix':
return '#^[a-zA-Z][a-zA-Z0-9_]*$#';
break;
}
return '';
}
?>-
Djeday
- phpBB 2.0.7a
- Сообщения: 644
- Стаж: 14 лет 8 месяцев
- Благодарил (а): 108 раз
- Поблагодарили: 68 раз
Re: Не отображается информация об IP-адресе
c61, запустил тест.
Результат:
Что дальше?
Результат:
Код: Выделить всё
test ip=87.250.251.3
error fsockopen
ReferralServer: whois: match not found
no resultsЯ смею то, что можно человеку, кто смеет меньше - тот не человек.
-
c61
- phpBB 2.0.6
- Сообщения: 506
- Стаж: 13 лет 9 месяцев
- Благодарил (а): 42 раза
- Поблагодарили: 251 раз
Re: Не отображается информация об IP-адресе
См. руководство по php:
Добавьте параметры fsockopen, чтоб вызов выглядел так:и в добавьте $err_n и $err_text примерно так:затем посмотрите код и текст ошибки.
Код: Выделить всё
resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )Код: Выделить всё
if (($fsk = @fsockopen($whois_host, 43, &$err_n, &$err_text)))
Код: Выделить всё
echo "error fsockopen<br />";
Код: Выделить всё
echo "error fsockopen ($err_n) $err_text<br />";
-
Djeday
- phpBB 2.0.7a
- Сообщения: 644
- Стаж: 14 лет 8 месяцев
- Благодарил (а): 108 раз
- Поблагодарили: 68 раз
Re: Не отображается информация об IP-адресе
А это
нужно добавить? В начало функции?
Код: Выделить всё
resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )Я смею то, что можно человеку, кто смеет меньше - тот не человек.
-
c61
- phpBB 2.0.6
- Сообщения: 506
- Стаж: 13 лет 9 месяцев
- Благодарил (а): 42 раза
- Поблагодарили: 251 раз
Re: Не отображается информация об IP-адресе
Нет, это просто строчка из руководства для иллюстрации наших действий: третий параметр - код ошибки, четвертый - текстовая расшифровка. Мы их получим и выдадим на экран. После чего станет всё ясно. Или совсем не ясно)) Во всяком случае, теперь точно известно: fsockopen завершается с ошибкой, осталось узнать: с какой именно.Djeday писал(а):нужно добавить? В начало функции?
-
Djeday
- phpBB 2.0.7a
- Сообщения: 644
- Стаж: 14 лет 8 месяцев
- Благодарил (а): 108 раз
- Поблагодарили: 68 раз
Re: Не отображается информация об IP-адресе
c61, я добавил. теперь выдает такое:
Блин, попробовал протестить на своем основном форуме - все показывает и работает...
Код: Выделить всё
Warning: Call-time pass-by-reference has been deprecated in /forum/test.php on line 13 Warning: Call-time pass-by-reference has been deprecated in /forum/test.php on line 13 test ip=...
error fsockopen (0) php_network_getaddresses: getaddrinfo failed: Name or service not known
ReferralServer: whois: match not found
no resultsЯ смею то, что можно человеку, кто смеет меньше - тот не человек.
-
c61
- phpBB 2.0.6
- Сообщения: 506
- Стаж: 13 лет 9 месяцев
- Благодарил (а): 42 раза
- Поблагодарили: 251 раз
Re: Не отображается информация об IP-адресе
К хостеру. Проблемы с DNS. Погуглив строку "php_network_getaddresses: getaddrinfo failed: Name or service not known", можно легко найти типа такого:
This issue is typically caused by the Apache/PHP host unable to contact the DNS server.
The first thing to check is to see if you can ping the remote host using console.
If no, then your primary name server on /etc/resolv.conf (Debian) is not working. Find a working DNS and restart Apache.
If yes, then Apache is still connecting to the broken DNS server. You should try restarting Apache to see if it refreshes the DNS server listing in /etc/resolv.conf.
Re: Не отображается информация об IP-адресе
извиняйте за оффтоп: не могу найти.
помнится на 2-ке был такой мод - кнопка над каждым сообщением - узнать ip адрес юзера поста.
есть-ли что-то подобное на 3-ке? а то модеры уже не первый раз просят, вернуть как было.
помнится на 2-ке был такой мод - кнопка над каждым сообщением - узнать ip адрес юзера поста.
есть-ли что-то подобное на 3-ке? а то модеры уже не первый раз просят, вернуть как было.
-
Pazh
- Former team member
- Сообщения: 2317
- Стаж: 16 лет 10 месяцев
- Благодарил (а): 42 раза
- Поблагодарили: 506 раз
Re: Не отображается информация об IP-адресе
miba штатная функция движка - нажимаешь на вопросик в каждом посте (Информация о сообщении) и смотришь там на поле "IP-адрес для сообщения:"
Помощь в ЛС/email только за WM или ЮMoney


