Foros del Web » Programando para Internet » PHP »

Obtener dominio sin subdominios

Estas en el tema de Obtener dominio sin subdominios en el foro de PHP en Foros del Web. Hola a todos, Estoy intentando lo siguiente. Con $_SERVER["SERVER_NAME"] obtengo el subdominio y dominio de la web en la que programo. Lo que busco es ...
  #1 (permalink)  
Antiguo 14/12/2011, 04:40
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Obtener dominio sin subdominios

Hola a todos,

Estoy intentando lo siguiente. Con $_SERVER["SERVER_NAME"] obtengo el subdominio y dominio de la web en la que programo. Lo que busco es solo obtener el dominio. No se si existe una variable especifica para ello, no la he visto.

¿Alguien tiene una funcion que lo haga?. Es que me doy cuenta de que existen subdominios y extensiones raras en los dominios, y no se si me pueden colar un gol por toda la escuadra.

Es decir:

sub.sub.dominio.com < dominio.com

sub.dominio.com < dominio.com

sub.dominio.com.mx < dominio.com.mx

¿Se entiende?
  #2 (permalink)  
Antiguo 14/12/2011, 07:24
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Obtener dominio sin subdominios

y hace un explode!
y elmina el primer elemento si es "sub"
  #3 (permalink)  
Antiguo 14/12/2011, 08:02
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Obtener dominio sin subdominios

Haz un print_r o var_dump a la variable $_SESSION y verifica si alguna de ellas te imprime lo que quieres exactamente. Si no pues usa lo que te indicaron o preg_match.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #4 (permalink)  
Antiguo 14/12/2011, 08:59
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 7 meses
Puntos: 140
Respuesta: Obtener dominio sin subdominios

No lo he probado pero hace un rato fuí a parar a esta página, quizá te pueda servir (o eso dicen) http://www.bloogie.es/tecnologia/pro...na-url-con-php

Saludos
  #5 (permalink)  
Antiguo 14/12/2011, 10:08
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Obtener dominio sin subdominios

Hola a todos,

Gracias por la ayuda. Si, ya he probado a explotar la cadena del dominio. Pero siempre entran dudas. Es facil engañar a un explode y mas en una cadena donde los subdominios pueden ser varios.

Es jodidillo este tema.

:P
  #6 (permalink)  
Antiguo 14/12/2011, 10:53
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Obtener dominio sin subdominios

Y el dominio es es siempe el mismo o cambia como el subdomnio?
  #7 (permalink)  
Antiguo 14/12/2011, 11:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Obtener dominio sin subdominios

Podría ser algo así
Código PHP:
Ver original
  1. <?php
  2. $url = parse_url('http://www.subdomain.domain.com?foo=bar');
  3. isset($url['host']) ? preg_match('/\w+\.\w+$/', $url['host'], $m) : null;
  4. echo isset($m[0]) ? $m[0] : null;
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 14/12/2011, 11:53
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Obtener dominio sin subdominios

Cita:
Iniciado por salbatore Ver Mensaje
Hola a todos,

Estoy intentando lo siguiente. Con $_SERVER["SERVER_NAME"] obtengo el subdominio y dominio de la web en la que programo. Lo que busco es solo obtener el dominio. No se si existe una variable especifica para ello, no la he visto.

¿Alguien tiene una funcion que lo haga?. Es que me doy cuenta de que existen subdominios y extensiones raras en los dominios, y no se si me pueden colar un gol por toda la escuadra.

Es decir:

sub.sub.dominio.com < dominio.com

sub.dominio.com < dominio.com

sub.dominio.com.mx < dominio.com.mx

¿Se entiende?
pero cual es el objeto?
si es la web en la que estás programando, lo podés definir vos.

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 14/12/2011, 11:56
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Obtener dominio sin subdominios

Cita:
Iniciado por abimaelrc Ver Mensaje
Podría ser algo así
Código PHP:
Ver original
  1. <?php
  2. $url = parse_url('http://www.subdomain.domain.com?foo=bar');
  3. isset($url['host']) ? preg_match('/\w+\.\w+$/', $url['host'], $m) : null;
  4. echo isset($m[0]) ? $m[0] : null;
Eso lo entendería si fuese una web externa

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #10 (permalink)  
Antiguo 14/12/2011, 13:48
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Obtener dominio sin subdominios

Hola,

La idea es que tengo un servidor que va ha tener unos 8 dominios enlazados a un sistema que estoy haciendo para pagar con tarjeta de credito. Son 8 tiendas que venden por internet.

Mi problema es que no siempre es el mismo dominio. Primero valido ips y demas, pero me gustaria tener constancia del dominio del que llaman a la aplicacion PHP. Parece sencillo pero no consigo obtener un codigo que me resuelva todo.

El problema es que los subdominios pueden ser varios, es decir:

subdominio.subdominio.midominio.com

Y otro problema es que los ".com" tambien pueden serlo, es decir:

midominio.com.mx.es

Esos son los que conozco, estoy buscando una forma de obtener el "midominio.com", he mirado los parametros de $_server... pero nada todo es muy amplio.

Igual alguien conocia una solucion.
  #11 (permalink)  
Antiguo 14/12/2011, 15:25
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Obtener dominio sin subdominios

chequea el $_SERVER['HTTP_REFERER']; y a ese valor podés hacerle parse_url() como te indicó @abimaelrc.

saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #12 (permalink)  
Antiguo 16/12/2011, 13:53
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Obtener dominio sin subdominios

Hola,

He probado todo lo que me comentais, y nada me sirve al 100%. Mi problema no tiene nada que ver con no poder obtener el nombre del dominio. Mi problema se centra en la posibilidad de que el dominio que me llegue este creado con malas intenciones.

El problema es que con explodes de la ulr no puedo saber el nombre del dominio con seguridad. Igual me este emparanoiando. Pero mirar:
  1. www.miweb.com > aqui seria facil.
  1. www.cosa.miweb.com> aqui como tambien seria facil, solo tengo que obtener los ultimos dos elemtnso de un explode por puntos.
  1. www.cosa.miweb.com.mx > ¿pero aqui como lo hago?, pensando en que pueden existir mas subdominios y mas ".com.mx". ¿Se entiende mi preocupacion?

Siento ser pesado.
  #13 (permalink)  
Antiguo 16/12/2011, 14:19
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Obtener dominio sin subdominios

Cita:
Iniciado por salbatore Ver Mensaje
Hola,

He probado todo lo que me comentais, y nada me sirve al 100%. Mi problema no tiene nada que ver con no poder obtener el nombre del dominio. Mi problema se centra en la posibilidad de que el dominio que me llegue este creado con malas intenciones.

El problema es que con explodes de la ulr no puedo saber el nombre del dominio con seguridad. Igual me este emparanoiando. Pero mirar:
  1. www.miweb.com > aqui seria facil.
  1. www.cosa.miweb.com> aqui como tambien seria facil, solo tengo que obtener los ultimos dos elemtnso de un explode por puntos.
  1. www.cosa.miweb.com.mx > ¿pero aqui como lo hago?, pensando en que pueden existir mas subdominios y mas ".com.mx". ¿Se entiende mi preocupacion?

Siento ser pesado.
@salbatore, no termino de entender a lo que querés llegar, te planteo este ejemplo

vos tenes una aplicación x en tu propio dominio (el cual vos administrás, obviamente), digamos que es un formulario. y la script que procesa es procesaform.php
Por otro lado, tenes uno o varios dominios/subdominios (obviamente NO administrados x vos), que pueden usar tu formulario, con tu consentimiento
Es un hecho que conoces cuales son esos dominios/subdominios externos
ejemplo

www.web1.com
www.web2.com
xxx.web1.com

etc.

Ahora, cada form, en cada dominio/subdominio, que apunte a http://tuweb.com/procesaform.php va generar en esta un HTTP_REFERER, que no es más que una url, ya conociendo esta url, con parse_url() podés saber si el valor de 'host', coincide o no con alguno de los sitios externos válidos de la lista. Solo tendrías que agrega un filtro en procesaform.php que verifique eso.

Por supuesto que tu procesaform deberá tener todas las otras medidas de seguridad básicas de un formulario en php, validación de campos, limpiar las variables, etc

No sé bien a que otras acciones malintencionadas te referis, si, ya se que pueden intentar hacer algun tipo de injection y cosas similares, pero eso ya es seguridad del propio formulario, el tema de los dominios/subdominios ya lo tenes controlado con lo otro.
Por ahi se me escapa algo, a veces el arbol tapa el bosque

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #14 (permalink)  
Antiguo 16/12/2011, 18:24
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Obtener dominio sin subdominios

Hola emprear,

Gracias por ayudar. Si tienes razon que si comparo el host con una lista puedo obtener facilmente si es una u otra web. El problema es que pensaba usar este script en un servidor no administrado que acabo de contratar para dirigir varias tiendas al mismo sistema PHP. Y para comprobar que debo imprimir en pantalla debo saber que tienda seleccionar.

En un principio parece facil, como bien dices podria comparar los host con una lista. Pero no me parece eficiente. Es decir, deberia crear esa lista, y en dos tiendas tengo subdominios dinamicos. Por tratar mas el tema de la eficiencia, no me parece logico tener que duplicar informacion en lo alto del codigo para luego tener que volver a comprobarlo. Igual esto ultimo lo he explicado mal y rapido.

Me sorprende no encontrar esta duda por Google. :P. Simplemente quiero tener el subdominio en una variable, y el dominio en otra con su extension.

:P
  #15 (permalink)  
Antiguo 16/12/2011, 19:07
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años
Puntos: 116
Respuesta: Obtener dominio sin subdominios

Creo que tendria que ser como un Domain Whois.
Tendrias que ver como terminan todos los dominios antes de la (diagonal) /

si es .com.mx/ o .net/ o .xxx/ etc...

ya sabiendo eso, es logico que lo que sigue en viceversa es el nombre de dominio
ej:
dom.com

y sakando el dominio todo el resto para atras son subdominios, eso a eliminarlo.
y asi extraes el dominio, pero hay que usar eso del whois, para buscar lo que son las extensiones

com, net, mx, xxx, co, cl, ru, etc...

Saludos.
__________________
Programador jQuery & PHP
  #16 (permalink)  
Antiguo 17/12/2011, 18:40
Avatar de salbatore  
Fecha de Ingreso: abril-2007
Ubicación: Springfield
Mensajes: 1.567
Antigüedad: 17 años
Puntos: 19
Respuesta: Obtener dominio sin subdominios

Hola a todos,

He probado varias funciones, he creado varios scripts para intentar resolver este problema. Y no se puede solucionar.

Debe existir alguna variable que contenga esa informacion, sino las empresas de hosting no se como se aclaran. Debe existir una lista limitada de extensiones. Pero la desconozco.

He buscado mucho y nada.

:P... si alguien sabe algo... ya sabe :).
Sin parecer maleducado, este tema es mas dificil de lo que parece.
  #17 (permalink)  
Antiguo 17/12/2011, 19:21
 
Fecha de Ingreso: diciembre-2011
Mensajes: 26
Antigüedad: 12 años, 4 meses
Puntos: 4
Respuesta: Obtener dominio sin subdominios

Amigo tan solo tienes que hacer lo siguiente:

Código PHP:
Ver original
  1. $url = $_SERVER["SERVER_NAME"];
  2.  
  3. $dominio = explode (".", $url);
  4.  
  5. // Para saber el dominio
  6.  
  7. echo $dominio[1];
  8.  
  9. // Si quiere saber el subdomino:
  10.  
  11. echo $dominio[0];
  #18 (permalink)  
Antiguo 17/12/2011, 19:30
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Obtener dominio sin subdominios

http://www.osmosislatina.com/dns/subdominios.htm

http://webusable.com/ExtensionsTable.htm
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: dominio, subdominios, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:36.