2011-11-22 14 views
5

Jak sprawdzić, czy adres URL uzyskujący dostęp do strony to oryginalny adres URL lub czy jest to rekord CNAME. Na przykład mam stronę domain.com. Użytkownicy mogą konfigurować rekord CNAME, na którym znajdują się linki www.otherdomain.com do naszej witryny domain.com.Jak sprawdzić, czy nazwa domeny jest rekordem CNAME w PHP

Z naszego punktu widzenia serwera, jak wykryć, czy URL uzyskujący dostęp do strony jest aktualny (domain.com), czy też rekord CNAME (www.otherdomain.com)?

+0

Czy ten sposób myślenia wymaga dedykowanego adresu IP? – JBithell

Odpowiedz

9

Myślę, że musisz zapytać DNS, aby go poznać, ponieważ ta informacja zwykle nie pojawia się w nagłówkach żądań.

Zapoznaj się z funkcjami dns_get_record i checkdnsrr w dokumentacji PHP.

+0

dns_get_record jest poprawną odpowiedzią. Mam to do pracy. Dzięki. – Pinkie

2

Możesz użyć biblioteki klas, aby dowiedzieć się, jakiego rodzaju rekord DNS jest podanym adresem URL.

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

Jeśli sprawdzasz adresy URL, możesz użyć $_SERVER['HTTP_HOST'] w PHP. To żądany host z adresu URL (np. http://otherdomain.com/blah.php spowodowałby, że serwer byłby zmieniony na otherdomain.com). $_SERVER['SERVER_NAME'] to skonfigurowana nazwa serwera w pliku httpd.conf.

Jeśli HTTP_HOST! = SERVER_NAME, użytkownik zdalny prawie na pewno używa jakiegoś aliasu, aby uzyskać dostęp do witryny.

+0

Zarówno HTTP_HOST, jak i HTTP_NAME przekazują mi otherdomain.com – Pinkie

Powiązane problemy