Foros del Web » Programando para Internet » PHP »

Script PHP con fsockopen, variable e IPv6

Estas en el tema de Script PHP con fsockopen, variable e IPv6 en el foro de PHP en Foros del Web. Hola! Creo que por primera vez necesitaré una mano de alguien en este foro de PHP, por favor. : ) Se trata de un script ...
  #1 (permalink)  
Antiguo 22/05/2011, 19:45
Avatar de Apolo
Colaborador
 
Fecha de Ingreso: abril-2003
Ubicación: ubicado
Mensajes: 7.961
Antigüedad: 19 años, 3 meses
Puntos: 109
Pregunta Script PHP con fsockopen, variable e IPv6

Hola!

Creo que por primera vez necesitaré una mano de alguien en este foro de PHP, por favor. : )

Se trata de un script que intenta averiguar la dirección IPv6 de un dominio. Es decir, su registro AAAA.

Una vez que lo averigua, almacena esa IPv6 en la variable address e intenta conectarse vía fsockopen al servidor web que responde a esa IPv6.

Pero ahí viene el problema. Resulta que para acceder a un servidor usando una dirección IPv6, se debe poner entre [ ], de esta forma:

http://[2001:470::76:0:0:0:2] (si es desde un navegador)

o

tcp://[2001:470::76:0:0:0:2] (de acuerdo con la documentación de fsockopen)

Así las cosas, ¿cómo hago para manipular esa variable y/o editar esa parte del script para que funcione correctamente?

Código PHP:
case 'Net_DNS_RR_AAAA':
    
$result->append(NULLs('{host} tiene registro AAAA con IPv6 {ipv6}', array('host' => $host'ipv6' => uc($rr->address))));
    
$sock = @fsockopen($rr->address80$errno$errstr$this->timeout);
    if (!
is_resource($sock)) {
        
$result->append(falses('Alerta: Servidor HTTP en {addr} puerto 80 no responde: {error}', array('addr' => $rr->address'error' => $errstr)));
    } else {
        
$result->append(trues('Servidor HTTP en {addr} puerto 80 respondió OK', array('addr' => $rr->address)));
        
fclose($sock);
    } 
Por cierto, el sitio es:

http://www.hosting-ipv6.com/

Muchas gracias!
__________________
Planes VPS en el mundo > DirectorioVPS
Visita los foros de hosting de ComunidadHosting
  #2 (permalink)  
Antiguo 22/05/2011, 20:21
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 18 años, 10 meses
Puntos: 105
Respuesta: Script PHP con fsockopen, variable e IPv6

Holas,

Quieres editar la variable $rr->address ??

Puedes capturar por ejemplo antes en una variable $tmp= $rr->address; y luego analizar ese contenido a como lo desees luego modifcar el $tmp y luego enviarla a la funcion fsockopen.

Es mas o menos lo que entiendo, nos avisas.

Saludos
Gildus
__________________
.: Gildus :.
  #3 (permalink)  
Antiguo 22/05/2011, 21:46
Avatar de Apolo
Colaborador
 
Fecha de Ingreso: abril-2003
Ubicación: ubicado
Mensajes: 7.961
Antigüedad: 19 años, 3 meses
Puntos: 109
Respuesta: Script PHP con fsockopen, variable e IPv6

Hola gildus,

Gracias por responder.

En realidad fue más sencillo de solucionar, "adornando" la variable con los componentes que hacían falta:

Código PHP:
$sock = @fsockopen("tcp://[$rr->address]"80$errno$errstr$this->timeout); 
Ya antes lo había intentado, pero adornando únicamente a address y tu mensaje me hizo caer en cuenta de lo obvio: que debía envolver a $rr->address

http://www.hosting-ipv6.com/hosting-ipv6.com

¡Ya funciona!
__________________
Planes VPS en el mundo > DirectorioVPS
Visita los foros de hosting de ComunidadHosting
  #4 (permalink)  
Antiguo 22/05/2011, 21:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 13 años, 1 mes
Puntos: 1517
Respuesta: Script PHP con fsockopen, variable e IPv6

¿Cuál variable quieres editar? ¿$rr->address? ¿Que valor tiene?
Mientras si lo que deseas es convertir http://127.0.0.1:80 a http://[127.0.0.1]:80 puedes hacer algo como
Código PHP:
Ver original
  1. <?php
  2. $str = 'http://fe80::1';
  3. $str = preg_replace('/^http:\/\/(.+).*/', 'http://[$1]:80', $str);
  4. echo $str; // imprime http://[fe80::1]:80
Tomé el ejemplo que posteo la documentación, pero hay que ver los diferentes ejemplos de lo que puede ocurrir.

Edito: Ups, veo que lo resolviste
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 22/05/2011, 21:55
Avatar de Apolo
Colaborador
 
Fecha de Ingreso: abril-2003
Ubicación: ubicado
Mensajes: 7.961
Antigüedad: 19 años, 3 meses
Puntos: 109
Respuesta: Script PHP con fsockopen, variable e IPv6

Hola abimaelrc,

Gracias por tu respuesta. : )

Seguramente te habrás fijado ya que alcancé a solucionarlo unos minutos antes de que publicaras tu respuesta. Justo arriba mencioné la sencilla solución.
__________________
Planes VPS en el mundo > DirectorioVPS
Visita los foros de hosting de ComunidadHosting
  #6 (permalink)  
Antiguo 22/05/2011, 22:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 13 años, 1 mes
Puntos: 1517
Respuesta: Script PHP con fsockopen, variable e IPv6

Sí me di cuenta,
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: fsockopen, ipv6, 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 16:12.