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

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

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

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

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

Взгляните на функции dns_get_record и checkdnsrr в документации PHP.

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

 $answer->results[x]->typeid //Textual record type ID (A, MX, CNAME etc) 

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

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