0

What I want to achieve is to check multiple domain availability.

Here is my code:

<?php
//$domain = 'example.com';
$domain = array('example.com', 'foo.com');

if ( checkdnsrr(in_array($domain), 'ANY') ) {
  $echo_checkdnsrr = in_array($domain) . " DNS Record found (checkdnsrr)" . "<br />" . PHP_EOL;
}
else {
  $echo_checkdnsrr = in_array($domain) . " NO DNS Record found (checkdnsrr)" . "<br />" . PHP_EOL;
}

if ( gethostbyname(in_array($domain)) != in_array($domain) ) {
  $echo_gethostbyname = in_array($domain) . " DNS Record found (gethostbyname)" . "<br />" . PHP_EOL;
}
else {
  $echo_gethostbyname = in_array($domain) . " NO DNS Record found (gethostbyname)" . "<br />" . PHP_EOL;
}

$separator = "-------------------------------------------" . "<br />" . PHP_EOL;

print_r($echo_checkdnsrr);
print_r($echo_gethostbyname);
echo $separator;
?>

What I want to achieve:

example.com DNS Record found (checkdnsrr)
example.com DNS Record found (gethostbyname)
-------------------------------------------
foo.com DNS Record found (checkdnsrr)
foo.com DNS Record found (gethostbyname)
-------------------------------------------

Thank You for your help!

Thank You to @fluinc, here is my final code:

$domains = array('example.com', 'foo.com');

foreach ($domains as $domain) {
    if (checkdnsrr($domain, 'ANY') || gethostbyname($domain) != $domain) {
        echo "TAKEN " . $domain . "<br />" . PHP_EOL;
    } else {
        echo "AVAILABLE " . $domain . "<br />" . PHP_EOL;
    }
}

This is what it's returns:

TAKEN example.com
TAKEN foo.com

Later on it's super easy to import in excel, choose space as separator and find out the available domains with a query.

4
  • What happens when you try it? Commented Nov 10, 2015 at 17:20
  • I would start with a foreach() to loop through the domains in the array. Commented Nov 10, 2015 at 17:22
  • @BenPearlKahan It just returns "array DNS record found (checkdnsrr)\r\narray DNS record not found (gethostbyname)" I think it's messing up multiple results into one query. Somehow needs to echoing multiple results into multiple outputs. Commented Nov 10, 2015 at 17:25
  • Please add the error is question Commented Nov 10, 2015 at 18:45

2 Answers 2

1

Use a foreach to loop through the domains, Your use of in_array is wrong and not needed.

$domains = array('example.com', 'foo.com');

foreach ($domains as $domain) {
    if (checkdnsrr($domain, 'ANY')) {
        echo $domain . " DNS Record found (checkdnsrr)<br />". PHP_EOL;
    } else {
        echo $domain . " NO DNS Record found (checkdnsrr)<br />". PHP_EOL;
    }

    if (gethostbyname($domain) != $domain) {
        echo $domain . " DNS Record found (gethostbyname)<br />". PHP_EOL;
    } else {
        echo $domain . " NO DNS Record found (gethostbyname)<br />". PHP_EOL;
    }
    echo "-------------------------------------------<br />". PHP_EOL;
}

Updated as per comment

$domains = array('example.com', 'foo.com');

foreach ($domains as $domain) {
    if (checkdnsrr($domain, 'ANY') || gethostbyname($domain) != $domain) {
        echo $domain . " TAKEN<br />". PHP_EOL;
    } else {
        echo $domain . " AVAILABLE<br />". PHP_EOL;
    }

    echo "-------------------------------------------<br />". PHP_EOL;
}
Sign up to request clarification or add additional context in comments.

1 Comment

Thank You! Works like a charm! Is it possible only return something if one of the checkdnsrr or gethostbyname is true? Because this way only one line enough for one domain. So only will be enough $domain . 'AVAILABLE' and $domain . 'TAKEN'?
0

Try using foreach() and echo out each result as it is processed:

$domains = array('example.com', 'foo.com');

foreach($domains as $domain){
    if(checkdnsrr(in_array($domain), "ANY")){
        echo in_array($domain) . " DNS Record found (checkdnsrr)" . "<br />" . PHP_EOL;
    } else {
        echo in_array($domain) . " NO DNS Record found (checkdnsrr)" . "<br />" . PHP_EOL;
    }

    if(gethostbyname(in_array($domain)) != in_array($domain)) {
        echo in_array($domain) . " DNS Record found (gethostbyname)" . "<br />" . PHP_EOL;
    } else {
        echo in_array($domain) . " NO DNS Record found (gethostbyname)" . "<br />" . PHP_EOL;
    }

    echo "-------------------------------------------" . "<br />" . PHP_EOL;
}

Shorter:

$domains = array('example.com', 'foo.com');

foreach($domains as $domain){
    echo in_array($domain).(checkdnsrr(in_array($domain), "ANY") ? "NO " : "")."DNS Record found (checkdnsrr)" . "<br />" . PHP_EOL;
    echo in_array($domain).(gethostbyname(in_array($domain))!= in_array($domain) ? "NO " : "")."Record found (gethostbyname)" . "<br />" . PHP_EOL;
    echo "-------------------------------------------" . "<br />" . PHP_EOL;
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.