Если у меня есть домен, например www.example.com
, и я хочу проверить, доступен ли он, используя записи DNS (не whois)...
Можно ли это сделать с помощью PHP?
Если у меня есть домен, например www.example.com
, и я хочу проверить, доступен ли он, используя записи DNS (не whois)...
Можно ли это сделать с помощью PHP?
Вы можете использовать checkdnsrr или gethostbyname:
Документация:
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
Мне нужно пойти на этот пакет Domain-Availability, он поддерживает множество доменов верхнего уровня и написан на объектно-ориентированном уровне.
Это зависит от того, что вы подразумеваете под "доступным". Если вы имеете в виду доступность для регистрации, невозможно определить только на основе информации DNS. Должна использоваться система whois. Простым способом тестирования является использование неиспользуемого имени домена и установка серверов имен на что-то недействительное. DNS не будет доступен, но домен по-прежнему недоступен для регистрации. Я просто проверил предложения checkdnsrr(), gethostbyname() и dns_get_record(). Все показывают, что DNS не возвращается для домена, который не может быть зарегистрирован.
Следующий вопрос предлагает более подробную информацию: Проверка регистрации имени домена