2011-11-22 2 views
5

페이지에 액세스하는 URL이 원래 URL인지 아니면 CNAME 레코드인지 어떻게 확인합니까?도메인 이름이 PHP의 CNAME인지 확인하는 방법

예를 들어, domain.com 사이트가 있습니다. 사용자는 www.otherdomain.com을 우리 사이트 domain.com에 연결하는 CNAME을 설정할 수 있습니다.

Google 서버의 관점에서 볼 때 페이지에 액세스하는 URL이 실제 URL (domain.com) 또는 CNAME (www.otherdomain.com)인지 어떻게 확인할 수 있습니까?

+0

이런 종류의 생각에는 전용 IP가 필요합니까? – JBithell

답변

9

이 정보는 일반적으로 요청 헤더에 나오지 않으므로 DNS를 쿼리해야한다고 생각합니다.

PHP 설명서에서 dns_get_recordcheckdnsrr 함수를 살펴보십시오.

+0

dns_get_record가 정답입니다. 나는 일하도록했다. 감사. – Pinkie

2

PHPDNS 클래스 라이브러리를 사용하여 주어진 URL이 어떤 종류의 DNS 레코드인지 확인할 수 있습니다.

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

URL을 확인하는 경우 PHP에서 $_SERVER['HTTP_HOST']을 사용할 수 있습니다. URL에서 요청한 호스트입니다 (예 : http://otherdomain.com/blah.php은 서버를 otherdomain.com이되게합니다). $_SERVER['SERVER_NAME']은 httpd.conf에 구성된 서버 이름입니다.

HTTP_HOST! = SERVER_NAME 인 경우 원격 사용자는 거의 확실하게 일종의 별칭을 사용하여 사이트에 액세스합니다.

+0

HTTP_HOST 및 HTTP_NAME 둘 다 나를 otherdomain.com이라고합니다. – Pinkie

관련 문제