Как проверить, является ли доменное имя CNAME в PHP

Как проверить, является ли URL-адрес, обращающийся к странице, исходным или является записью CNAME.

Например, у меня есть сайт domain.com, Пользователи могут настроить CNAME, где они ссылаются www.otherdomain.com на наш сайт domain.com,

С нашей точки зрения сервера, как я могу определить, является ли URL-адрес страницы доступным (domain.com) или CNAME один (www.otherdomain.com)?

3 ответа

Решение

Я думаю, что вы должны запросить DNS, чтобы узнать это, так как эта информация обычно не входит в заголовки запроса.

Посмотрите на функции dns_get_record и checkdnsrr в документации PHP.

Если вы проверяете URL, вы можете использовать $_SERVER['HTTP_HOST'] в PHP. Это запрошенный хост из URL (например, http://otherdomain.com/blah.php сделает сервер var otherdomain.com). $_SERVER['SERVER_NAME'] настроенное имя сервера в файле httpd.conf

Если HTTP_HOST!= SERVER_NAME, удаленный пользователь почти наверняка использует какой-либо псевдоним для доступа к сайту.

Вы можете использовать библиотеку классов PHPDNS, чтобы узнать, какой тип записи DNS является заданным URL-адресом.

$answer->results[x]->typeid //Textual record type ID (A, MX, CNAME etc)
Другие вопросы по тегам