dnslookup.php
function dnslookup($ip) {
global $memcache;
if(!is_resource($memcache)) {
openMemCache();
}
if(is_resource($memcache)) {
$dns = memcache_get($memcache, 'dns_'.$ip);
}
if(!empty($dns)) {
return $dns;
} else {
$res = `nslookup -timeout=0 -retry=0 $ip`;
$pos = strpos ( $res, "name = " );
$out = substr ( $res, $pos + 7 );
$pos = strpos ( $out, ".\n" );
$out = substr ( $out, 0, $pos );
if (strlen ( $out ) > 2) {
if(is_resource($memcache)) {
memcache_set($memcache, 'dns_'.$ip, $out, 0, 48*60*60); // Cache DNS for x hours
}
return $out;
} else {
return 'Resolve faliure.';
}
}
}