2011-11-22 8 views
5

Cómo verifico si la URL que accede a la página es la URL original o si es un registro CNAME.Cómo comprobar si un nombre de dominio es un CNAME en PHP

Por ejemplo, tengo un sitio domain.com. Los usuarios pueden configurar un CNAME donde enlazan www.otherdomain.com a nuestro sitio domain.com.

Desde nuestro punto de vista del servidor, ¿cómo puedo detectar si la URL que accede a la página es la real (domain.com) o la CNAME (www.otherdomain.com)?

+0

¿Este tipo de pensamiento requiere una dirección IP dedicada? – JBithell

Respuesta

9

Creo que tiene que consultar un DNS para saberlo, ya que esta información no suele venir en los encabezados de solicitud.

Eche un vistazo a las funciones dns_get_record y checkdnsrr en la documentación de PHP.

+0

dns_get_record es la respuesta correcta. Yo tengo que trabajar. Gracias. – Pinkie

2

Puede usar la biblioteca de clases PHPDNS para averiguar qué tipo de registro DNS es una URL determinada.

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

Si está revisando las URL, puede usar $_SERVER['HTTP_HOST'] en PHP. Ese es el host solicitado de la URL (por ejemplo, http://otherdomain.com/blah.php haría que el servidor var sea otherdomain.com). $_SERVER['SERVER_NAME'] es el nombre de servidor configurado en httpd.conf.

Si HTTP_HOST! = SERVER_NAME, el usuario remoto casi seguramente usa un alias de algún tipo para acceder al sitio.

+0

Tanto HTTP_HOST como HTTP_NAME me están dando otherdomain.com – Pinkie

Cuestiones relacionadas