From 98b172980f5b00ae605096f0c327b67d87d716c8 Mon Sep 17 00:00:00 2001 From: Bui Date: Mon, 6 Oct 2014 03:37:13 +0900 Subject: [PATCH 1/3] add forward-confirmed reverse DNS --- inc/config.php | 5 ++++- inc/functions.php | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/inc/config.php b/inc/config.php index ac4069da..c96e9e4e 100644 --- a/inc/config.php +++ b/inc/config.php @@ -66,7 +66,10 @@ // Use `host` via shell_exec() to lookup hostnames, avoiding query timeouts. May not work on your system. // Requires safe_mode to be disabled. $config['dns_system'] = false; - + + // Check validity of the reverse DNS of IP addresses. Highly recommended. + $config['fcrdns'] = true; + // When executing most command-line tools (such as `convert` for ImageMagick image processing), add this // to the environment path (seperated by :). $config['shell_path'] = '/usr/local/bin'; diff --git a/inc/functions.php b/inc/functions.php index f9c09085..5960d65d 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -2259,6 +2259,7 @@ function rDNS($ip_addr) { if (!$config['dns_system']) { $host = gethostbyaddr($ip_addr); + $isip = filter_var($host, FILTER_VALIDATE_IP); } else { $resp = shell_exec_error('host -W 1 ' . $ip_addr); if (preg_match('/domain name pointer ([^\s]+)$/', $resp, $m)) @@ -2267,6 +2268,10 @@ function rDNS($ip_addr) { $host = $ip_addr; } + if ($config['fcrdns'] && !$isip && gethostbyname($host) != $ip_addr) { + $host = $ip_addr; + } + if ($config['cache']['enabled']) cache::set('rdns_' . $ip_addr, $host); From ca7955ecfc661d8684ba32c2b093b8298aa4daa3 Mon Sep 17 00:00:00 2001 From: Bui Date: Mon, 6 Oct 2014 04:08:10 +0900 Subject: [PATCH 2/3] don't break if dns_system is true --- inc/functions.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/inc/functions.php b/inc/functions.php index 5960d65d..be20d034 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -2259,7 +2259,6 @@ function rDNS($ip_addr) { if (!$config['dns_system']) { $host = gethostbyaddr($ip_addr); - $isip = filter_var($host, FILTER_VALIDATE_IP); } else { $resp = shell_exec_error('host -W 1 ' . $ip_addr); if (preg_match('/domain name pointer ([^\s]+)$/', $resp, $m)) @@ -2268,6 +2267,8 @@ function rDNS($ip_addr) { $host = $ip_addr; } + $isip = filter_var($host, FILTER_VALIDATE_IP); + if ($config['fcrdns'] && !$isip && gethostbyname($host) != $ip_addr) { $host = $ip_addr; } From 3f4381cf402adc9c0bffbc5b57509fba91b3bd8d Mon Sep 17 00:00:00 2001 From: Bui Date: Mon, 6 Oct 2014 04:30:32 +0900 Subject: [PATCH 3/3] wasn't aware of DNS function --- inc/functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inc/functions.php b/inc/functions.php index be20d034..686a7e22 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -2269,7 +2269,7 @@ function rDNS($ip_addr) { $isip = filter_var($host, FILTER_VALIDATE_IP); - if ($config['fcrdns'] && !$isip && gethostbyname($host) != $ip_addr) { + if ($config['fcrdns'] && !$isip && DNS($host) != $ip_addr) { $host = $ip_addr; }