<?php
/* nstest - determine dns servers used by visitors
 *
 * author: apoc <apoc@sixserv.org>
 * site: http://apoc.sixserv.org/
 * license: GPLv3
 **/

if(!empty($_POST["hash"]))
{
    
$hash $_POST["hash"];
    if(!
preg_match("/^[0-9a-fA-F]{32}$/"$hash))
        die(
"Error in Input Validation");

    
$bind_queries_log "/var/log/bind/queries.log";
    if(!
is_readable($bind_queries_log)) die("Check queries Log permission.");

    
$results = `grep $hash $bind_queries_log`;

    
$res = array();
    
preg_match_all("/client ([^#]+)#[0-9]+: query: $hash\.nstest\.4poc\.org /m"$results$res);

    echo 
"<ul>\n";

    
$ips array_unique($res[1]);

    foreach(
$ips as $ip)
    {
        echo 
"\t<li>".$ip." (".gethostbyaddr($ip).")</li>\n";
    }

    echo 
"</ul>\n";
}

?>