Как проверить, является ли доменное имя CNAME в PHP - PullRequest
5 голосов
/ 22 ноября 2011

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

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

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

Ответы [ 3 ]

9 голосов
/ 22 ноября 2011

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

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

2 голосов
/ 22 ноября 2011

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

$answer->results[x]->typeid //Textual record type ID (A, MX, CNAME etc)
1 голос
/ 22 ноября 2011

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

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

...