проверить, доступен ли домен или нет с помощью PHP?

Если у меня есть домен, такой как www.example.com и я хочу проверить, доступен ли он с помощью записей DNS (а не whois) …

Можно ли это сделать с помощью PHP?

Вы можете использовать checkdnsrr или gethostbyname:

Документация:

http://www.php.net/checkdnsrr

http://www.php.net/gethostbyname

Пример checkdnsrr:

 <?php if ( checkdnsrr('example.com.', 'ANY') ) { echo "DNS Record found"; } else { echo "NO DNS Record found"; } ?> 

Пример gethostbyname:

 <?php $domain = 'example.com'; if ( gethostbyname($domain) != $domain ) { echo "DNS Record found"; } else { echo "NO DNS Record found"; } ?> 

похоже, что это в стандартной php-библиотеке, проверьте эту функцию http://php.net/manual/en/function.dns-get-record.php

Конечно . Это то, что происходит для доступного домена.

Некоторые из API, которые будут выполнять эту работу.

http://www.whoisxmlapi.com/domain-availability.php

http://www.dynadot.com/domain/api.html

http://www.opensrs.com/site/integration/api

Я должен пойти на этот пакет Domain-Availability, он поддерживает много доменов верхнего уровня и написан на объектно-ориентированном уровне.

Это зависит от того, что вы подразумеваете под «доступным». Если вы имеете в виду доступность для регистрации, невозможно определить только на основе информации DNS. Должна использоваться система whois. Простым способом тестирования является использование неиспользуемого имени домена и установка серверов имен на что-то недействительное. DNS не будет доступен, но домен по-прежнему недоступен для регистрации. Я просто проверил предложения checkdnsrr (), gethostbyname () и dns_get_record (). Все показывают, что DNS не возвращается для домена, который не может быть зарегистрирован.

Следующий вопрос предлагает более подробную информацию: проверка регистрации имени домена