Как проверить, является ли доменное имя 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)