Из этого куска неясно, был ли аргумент у 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))