Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 558
  • Last Modified:

Api for Domains (PHP)

Hi E's, who known a really free api for check domains (php)?

Regards, JC
0
Pedro Chagas
Asked:
Pedro Chagas
  • 3
  • 2
  • 2
  • +1
2 Solutions
 
markh789Commented:
You can make a script to check "http://who.is/whois/somedomain.com/" for the domain, and if it has "somedomain.com appears to be available". Check snippet.

I looked on php.net for fsock stuff, take a look.
<?php
// whois.php
if(isset($_GET['domainname'])) {
$fp = fsockopen("http://who.is/whois/" . $_GET['somedomain'] . "/", 80, $errno, $errstr, 30);
if (!$fp) {
    echo $errstr" . " (" . $errno . ")<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.who.is\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        $data_string = $data_string . fgets($fp, 128);
    }
    fclose($fp);
 
    if(strstr($_GET['domainname'] . " appears to be available", $data_string)) {
         return true;
    } else {
         return false;
    }
}
}
?>

Open in new window

0
 
markh789Commented:
Sorry, try new attached.
<?php
// whois.php
if(isset($_GET['domainname'])) {
$fp = fsockopen("http://who.is/whois/" . $_GET['somedomain'] . "/", 80, $errno, $errstr, 30);
if (!$fp) {
    echo $errstr . " (" . $errno . ")<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.who.is\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        $data_string = $data_string . fgets($fp, 128);
    }
    fclose($fp);
 
    if(strstr($_GET['domainname'] . " appears to be available", $data_string)) {
         return true;
    } else {
         return false;
    }
}
}
?>

Open in new window

0
 
markh789Commented:
This code would be smaller and would be a better method and seems it would be easier to put in,
<?php
function CheckDomain($domainname) {
if(strpos(file_get_contents(http://who.is/whois/' . $domainname), $domainname . ' appears to be available')!== false) {
return true;
} else {
return false;
}
}
 
if(CheckDomain("example.com")) {
 echo "Yes!";
} else {
 echo "No.";
}
 
?>

Open in new window

0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
Pedro ChagasWebmasterAuthor Commented:
Hi @markh789, your last code show this error:
Parse error: syntax error, unexpected ':' in /home/tags/public_html/teste2.php on line 3
//line 3 is: if(strpos(file_get_contents(http://who.is/whois/' . $domainname), $domainname . ' appears to be available')!== false) {

What is wrong is your last code?

Regards, JC
0
 
manavsiCommented:
correct the above error as following snippet...
<?
function CheckDomain($domainname) {
if(strpos(file_get_contents('http://who.is/whois/' . $domainname), $domainname . ' appears to be available')!== false) {
return true;
} else {
return false;
}
}
 
if(CheckDomain("google.com")) {
 echo "Yes!";
} else {
 echo "No.";
}
 
?>

Open in new window

0
 
manavsiCommented:
but look, when i try the above code.. i get NO for google.com
May be i would recommend you for this file here: Its the Best API i know...

Link: http://www.4shared.com/file/105722518/4d614b3f/enom-2007-04-24tar.html

Chk out the examples too...

HTH
Manavsi
0
 
Ray PaseurCommented:
Try this... You may not need an API
<?php // RAY_checkdns.php
error_reporting(E_ALL);
 
// FUNCTION TO CHECK FOR A ROUTABLE DNS
function rout($url)
{
 
// PLUCK OUT THE TLD AND THE DOMAIN
   $x = explode('.', strtolower($url));
   if (!is_array($x)) // MAYBE 'localhost'?
   {
      return FALSE;
   }
 
// SOMETHING LIKE 'http://www.google.com' OR 'www2.atf70.whitehouse.gov'?
   else
   {
      $y   = count($x);
      $dmn = $x[$y-2] . '.' . $x[$y-1];
   }
 
// SEE IF THE DOMAIN.TLD IS ROUTABLE
   if ( checkdnsrr($dmn,"MX") || checkdnsrr($dmn,"A") ) return TRUE;
 
// IF NOT ROUTABLE
   return FALSE;
}
 
// TEST CASES
echo "<br/>Google.com ";
var_dump( rout('Google.com') );
 
echo "<br/>shmedlapp.net ";
var_dump( rout('shmedlapp.net') );

Open in new window

0
 
Pedro ChagasWebmasterAuthor Commented:
Hi @ray, in your example, in //TEST CASES, if I want do:
//TEST CASES
rout('Google.com');
if (available){
 echo "available";
} else {
echo "not available";
}

Sorry the question, but I don't understand well about "return".
==================================================
For @manavsi, I think your last script work well, for google.com the answer is NO, off course NO because is not available! If I try the domain: "sdgfdshfdhdf.com" the answer is YES, because is available!
So I thing your script work well. Thanks for that.

Regards, JC
0
 
Ray PaseurCommented:
OK, please tell me a little bit more.  Am I understanding it correctly?  You want to know if a domain is registered or available?

I think this is how I would use that code that I posted earlier (see snippet).

Either function may work well for you, but the built-in PHP function checkdnsrr() does not make your programming dependent on an external service.
if (!rout('Google.com'){ echo "available"; }

Open in new window

0

Featured Post

Prepare for your VMware VCP6-DCV exam.

Josh Coen and Jason Langer have prepared the latest edition of VCP study guide. Both authors have been working in the IT field for more than a decade, and both hold VMware certifications. This 163-page guide covers all 10 of the exam blueprint sections.

  • 3
  • 2
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now