Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
authorThomas Steur <tsteur@users.noreply.github.com>2021-09-23 22:59:11 +0300
committerGitHub <noreply@github.com>2021-09-23 22:59:11 +0300
commit3495f7af4c6031c71e47dcd0d882b3950486cfc9 (patch)
treeb28f435a210e32b987630914f8bbfdd95dbc5176 /config
parent40f0ce2e614632ec8ac6af71a38f1c47b267e26c (diff)
For login allow list add support for IPv6 (#18046)
Diffstat (limited to 'config')
-rw-r--r--config/global.php12
1 files changed, 12 insertions, 0 deletions
diff --git a/config/global.php b/config/global.php
index 4be44c4dbd..cc02edc8d4 100644
--- a/config/global.php
+++ b/config/global.php
@@ -162,12 +162,24 @@ return array(
$ipsResolved = array();
foreach ($ips as $ip) {
+ $ip = trim($ip);
if (filter_var($ip, FILTER_VALIDATE_IP)) {
$ipsResolved[] = $ip;
} else {
$ipFromHost = @gethostbyname($ip);
if (!empty($ipFromHost)) {
+ // we don't check using filter_var if it's an IP as "gethostbyname" will return the $ip if it's not a hostname
+ // and we then assume it is an IP range. Otherwise IP ranges would not be added. Ideally would above check if it is an
+ // IP range before trying to get host by name.
$ipsResolved[] = $ipFromHost;
+ }
+
+ if (function_exists('dns_get_record')) {
+ $entry = @dns_get_record($ip, DNS_AAAA);
+ if (!empty($entry['0']['ipv6'])
+ && filter_var($entry['0']['ipv6'], FILTER_VALIDATE_IP)) {
+ $ipsResolved[] = $entry['0']['ipv6'];
+ }
}
}
}