Из этого куска неясно, был ли аргумент у HELO и какой. Может быть, выше есть сама команда типа
HELO web.site.ru
. И как конкретно выглядит web.site.ru
- нестандартных символов не содержит?Из этого куска неясно, был ли аргумент у HELO и какой. Может быть, выше есть сама команда типа
HELO web.site.ru
. И как конкретно выглядит web.site.ru
- нестандартных символов не содержит?вот прям так и выглядитrxu писал(а): 14.08.2024 16:44 И как конкретно выглядит web.site.ru - нестандартных символов не содержит?
Нету, это думаю надо как то телнетом туда ходить эмулируя форум, но на этом мои полномочия фсе
Код: Выделить всё
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
$local_host = $user->host;
var_dump($local_host);
if (function_exists('php_uname'))
{
$local_host = php_uname('n');
// Able to resolve name to IP
if (($addr = @gethostbyname($local_host)) !== $local_host)
{
// Able to resolve IP back to name
if (($name = @gethostbyaddr($addr)) !== $addr)
{
$local_host = $name;
}
}
}
var_dump($local_host);
string(9) "devuan.ru" string(0) ""
Теперь понятно. Неясно только, почему так происходит. А в таком варианте?
Код: Выделить всё
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
$local_host = $user->host;
var_dump($local_host);
if (function_exists('php_uname'))
{
$local_host = php_uname('n');
// Able to resolve name to IP
if (($addr = gethostbyname($local_host)) !== $local_host)
{
var_dump($addr);
// Able to resolve IP back to name
if (($name = gethostbyaddr($addr)) !== $addr)
{
$local_host = $name;
}
}
}
var_dump($local_host);
Тоже самое string(0) "" на конце, а на прошлой версии php string(13) и хост отображается
IP адрес сервера выдает в середине?
да, там все с этим ок
8.0.30
С функцией
gethostbyaddr
были проблемы до версии PHP 8.1.2 - она выдавала бинарную строку на выходе. Есть возможность попробовать PHP 8.1.2+?includes/functions_messenger.php
Код: Выделить всё
FIND
if (($name = @gethostbyaddr($addr)) !== $addr)
REPLACE WITH
if (!empty($name = gethostbyaddr($addr)) && $name !== $addr)
Тогда еще один тест под PHP8:
Код: Выделить всё
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
$local_host = $user->host;
if (function_exists('php_uname'))
{
$local_host = php_uname('n');
// Able to resolve name to IP
if (($addr = gethostbyname($local_host)) !== $local_host)
{
// Able to resolve IP back to name
if (!empty($name = gethostbyaddr($addr)) && $name !== $addr)
{
$local_host = $name;
}
}
}
var_dump(strspn($local_host, '01') === strlen($local_host));
true
или false
.bool(false)
Код: Выделить всё
if (!empty((string) $name = gethostbyaddr($addr)) && ($name !== $addr))