mirror of
https://github.com/phpbb/phpbb.git
synced 2025-05-07 16:15:22 +02:00
Merge branch 'ticket/bantu/9534' into develop-olympus
* ticket/bantu/9534: [ticket/9534] Update function documentation for user_ipwhois(). [ticket/9534] Adding support for IPv6 addresses in user_ipwhois().
This commit is contained in:
commit
6343e67fab
@ -1229,22 +1229,39 @@ function user_unban($mode, $ban)
|
||||
}
|
||||
|
||||
/**
|
||||
* Whois facility
|
||||
* Internet Protocol Address Whois
|
||||
* RFC3912: WHOIS Protocol Specification
|
||||
*
|
||||
* @link http://tools.ietf.org/html/rfc3912 RFC3912: WHOIS Protocol Specification
|
||||
* @param string $ip Ip address, either IPv4 or IPv6.
|
||||
*
|
||||
* @return string Empty string if not a valid ip address.
|
||||
* Otherwise make_clickable()'ed whois result.
|
||||
*/
|
||||
function user_ipwhois($ip)
|
||||
{
|
||||
$ipwhois = '';
|
||||
|
||||
// Check IP
|
||||
// Only supporting IPv4 at the moment...
|
||||
if (empty($ip) || !preg_match(get_preg_expression('ipv4'), $ip))
|
||||
if (empty($ip))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
if (($fsk = @fsockopen('whois.arin.net', 43)))
|
||||
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
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
$ipwhois = '';
|
||||
|
||||
if (($fsk = @fsockopen($whois_host, 43)))
|
||||
{
|
||||
// CRLF as per RFC3912
|
||||
fputs($fsk, "$ip\r\n");
|
||||
@ -1257,7 +1274,7 @@ function user_ipwhois($ip)
|
||||
|
||||
$match = array();
|
||||
|
||||
// Test for referrals from ARIN to other whois databases, roll on rwhois
|
||||
// Test for referrals from $whois_host to other whois databases, roll on rwhois
|
||||
if (preg_match('#ReferralServer: whois://(.+)#im', $ipwhois, $match))
|
||||
{
|
||||
if (strpos($match[1], ':') !== false)
|
||||
@ -1285,7 +1302,7 @@ function user_ipwhois($ip)
|
||||
@fclose($fsk);
|
||||
}
|
||||
|
||||
// Use the result from ARIN if we don't get any result here
|
||||
// Use the result from $whois_host if we don't get any result here
|
||||
$ipwhois = (empty($buffer)) ? $ipwhois : $buffer;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user