Здравствуйте!
phpbb версии 3.3.11
В связи с умиранием сервиса whois и переходом на RDAP сервис "получить информацию об IP" перестал исправно функционировать..
сервер whois.arin.net  по 43 порту выдает одну и туже страницу для всех адресов при запросах..
Как быть? Ждать обновления версии phpbb где будет совершен переход на RDAP ?
Или есть еще нормально функционируешь сервер whois? 
В форуме в файле /includes/functions_user.php есть функция user_ipwhois() где можно поменять сервер whois..но он же умер уже?
..
зы..попробовал изменить функцию, получить curlом страницу с whois.ru, так в отдаваемой сервером странице защита против ботов, надо нажать кнопку..т.е. такой вариант не прокатил.. 
 Отправлено спустя    2 часа 24 минуты 38 секунд:
Отправлено спустя    2 часа 24 минуты 38 секунд:
я в общем решил проблему..
согласно топику 
https://www.phpbb.com/community/viewtopic.php?t=2660611 предпоследний пост ссылку дал на сервис 
https://ipinfo.io/
я переписал в файле /includes/functions_user.php функцию user_ipwhois()
добавив код curl запроса к ресурсу 
https://ipinfo.io/ (я коментил строки оригинальной функции частично)
так меня интересует только город и страна, я вырезал регуляркой эти данные в ответе сервиса..
вот как выглядит моя функция сейчас
Код: Выделить всё
function user_ipwhois($ip)
{
	if (!filter_var($ip, FILTER_VALIDATE_IP))
	{
		return '';
	}
	// IPv4 & IPv6 addresses
	//$whois_host = 'whois.arin.net.';
        $whois_host = 'whois.ripn.net.';
	
	$ipwhois = '';
	
	/*
	if (($fsk = @fsockopen($whois_host, 43)))
	{
		// CRLF as per RFC3912
		// Z to limit the query to all possible flags (whois.arin.net)
		fputs($fsk, "z $ip\r\n");
		while (!feof($fsk))
		{
			$ipwhois .= fgets($fsk, 1024);
		}
		@fclose($fsk);
	}
	$match = array();
	// Test for referrals from $whois_host to other whois databases, roll on rwhois
	if (preg_match('#ReferralServer:[\x20]*whois://(.+)#im', $ipwhois, $match))
	{
		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;
	}
      */
  
	$whoisurl="https://ipinfo.io/$ip";
    $ch = curl_init($whoisurl);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, false);
	curl_setopt($ch, CURLOPT_HEADER, false);
	$useragent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 YaBrowser/25.2.0.0 Safari/537.36';
	curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
	$whois_html = curl_exec($ch);
        curl_close($ch);
	
	preg_match("/<h2 class\=\"h5\">(.+)<\/h2>/isU",$whois_html,$match);
	$ipwhois = $match[1];
	
	
	//$ipwhois = htmlspecialchars($ipwhois, ENT_COMPAT);
	// Magic URL ;)
	return trim(make_clickable($ipwhois, false, ''));
}