cppit
cppit

Reputation: 4564

checkdnsrr() returns wrong info

$dname = "accurst.com";
$recordexists = checkdnsrr($dname, "ANY");

if ($recordexists) 
  echo $dname." is taken. Sorry!<br>";
else 
  echo $dname." is available!<br>";

this is an example domain that returns the wrong info. It says its available but the domain is a premium domain name of 2800 dollars is there any way for it to show that it's not available since it is not untied to anyone? in other words if I look up: accurstttt.com now that's available and accurst.com should say : not available i tried different other domain names and it keeps showing they are available while they are premium. any input would be very helpful thank you

Upvotes: 0

Views: 1439

Answers (2)

MIIB
MIIB

Reputation: 1849

<?php

function checkDomainAvailability($domain_name){

$server = 'whois.crsnic.net';

// Open a socket connection to the whois server
$connection = fsockopen($server, 43);
if (!$connection) return false;

// Send the requested doman name
fputs($connection, $domain_name."\r\n");

// Read and store the server response
$response_text = ' :';
while(!feof($connection)) {
$response_text .= fgets($connection,128);
}

// Close the connection
fclose($connection);

// Check the response stream whether the domain is available
if (strpos($response_text, 'No match for')) return true;
else return false;
}


$domainname = 'accurst.com';

if(checkDomainAvailability($domainname)) echo 'Domain : '.$domainname.' is Available';
else echo 'Domain : '.$domainname.' is Already Taken';

?>

Upvotes: 2

Kevin Seifert
Kevin Seifert

Reputation: 3572

Unfortunately the function:

returns FALSE if no records were found or if an error occurred.

So "no result" does not really mean anything decisive.

I would also look for A and CNAME records, for example:

$dname = "accurst.com";
echo checkdnsrr($dname, "A");

prints 1

Upvotes: 1

Related Questions