From 86ab47ff209d697d33462af31f44a60ab04f1809 Mon Sep 17 00:00:00 2001 From: sullrich Date: Sat, 5 Dec 2009 20:14:02 -0500 Subject: Query each DNS server and report the resolution time. --- usr/local/www/diag_dns.php | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) (limited to 'usr/local/www/diag_dns.php') diff --git a/usr/local/www/diag_dns.php b/usr/local/www/diag_dns.php index e76bb7e..aa795cd 100644 --- a/usr/local/www/diag_dns.php +++ b/usr/local/www/diag_dns.php @@ -47,8 +47,22 @@ if ($_POST) { do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors); $host = trim($_POST['host']); - if (!(is_hostname($host) || is_ipaddr($host))) { + if (!is_hostname($host) || is_ipaddr($host)) $input_errors[] = "Host must be a valid hostname or IP address."; + + // Test resolution speed of each DNS server. + if ((is_hostname($host) || is_ipaddr($host))) { + $dns_speeds = array(); + list($pconfig['dns1'],$pconfig['dns2'],$pconfig['dns3'],$pconfig['dns4']) = $config['system']['dnsserver']; + for ($dnscounter=1; $dnscounter<5; $dnscounter++) { + $dns_server = $pconfig['dns' . $dnscounter]; + $query_time = `dig google.com @{$dns_server} | grep Query | cut -d':' -f2`; + $new_qt = array(); + $new_qt['dns_server'] = $dns_server; + $new_qt['query_time'] = $query_time; + $dns_speeds[] = $new_qt; + unset($new_qt); + } } $type = "unknown"; @@ -97,6 +111,36 @@ include("head.inc"); ?> + + Resolution time per server + + + + + + + + + + + + +
+ Server + + Query time +
+ + + +
+ + More Information: -- cgit v1.1