How to check if a domain name is a CNAME in PHP

血红的双手。 提交于 2019-12-05 01:28:07

问题


How do I check if the URL accessing the page is the original URL or if it's a CNAME record.

For example, I have a site domain.com. Users can setup a CNAME where they link www.otherdomain.com to our site domain.com.

From our server point of view, how can I detect if the URL accessing the page is the actual one (domain.com) or the CNAME one (www.otherdomain.com)?


回答1:


I think you have to query a DNS to know it, since this information does not usually come in request headers.

Take a look at the dns_get_record and checkdnsrr functions in PHP documentation.




回答2:


You can use PHPDNS class library to find out what kind of DNS record is a given url.

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



回答3:


If you're checking on URLs, you can use $_SERVER['HTTP_HOST'] in PHP. That's the requested host from the URL (eg. http://otherdomain.com/blah.php would make the server var be otherdomain.com). $_SERVER['SERVER_NAME'] is the configured servername in the httpd.conf.

If HTTP_HOST != SERVER_NAME, the remote user is almost certainly using an alias of some sort to access the site.



来源:https://stackoverflow.com/questions/8232661/how-to-check-if-a-domain-name-is-a-cname-in-php

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!