elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:21  


Tema destacado: [AIO elhacker.NET] Compilación herramientas análisis y desinfección malware

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  obtener enlace HTTP con preg_match ??
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: obtener enlace HTTP con preg_match ??  (Leído 594 veces)
Diabliyo


Desconectado Desconectado

Mensajes: 1.270


M.S.I Angel Cantu


Ver Perfil WWW
obtener enlace HTTP con preg_match ??
« en: 18 Febrero 2011, 22:32 »

Buenas..

Hice un scrtip para acortar mis URLs en mi blog, el proceso lo hago muy simple:

1- me conecto al sitio is.gd con sockets.
3- Envio la peticion GET con mi URL.
4- Me responde con la URL acortada.

Mi problema, es que en lo que es la trama HTTP me llegan otros valores extras, esto me llega:

1- Url a acortar: http://lab.sie-group.net.
2- GET que invoco en el socket: http://is.gd/create.php?format=simple&url=http://lab.sie-group.net
3- Respuesta a nivel de socket: 13 http://is.gd/DuSqfL 0.

Si lo hacemos via Navegador, recivo solo: http://is.gd/DuSqfL, el valor 12 y 0 no se porque estan en la trama, en fin que puedo hacer para sacar la url ?

Este es mi code:

Código
<?php
function is_gd( $url )
{
$host= 'is.gd'; # hostname
$get= 'create.php?format=simple'; # get basico  
$url= urlencode($url); # acondicionamos url
$get .= '&url='. $url; # concatenamos la url
$puerto= 80; # puerto a consultar

# trama HTTP
$http_request= "GET /$get HTTP/1.1\r\n";
$http_request .= "Host: $host \r\n";
$http_request .= "Connection: close\r\n";
$http_request .= "\r\n";
 
# consultamos
if( ($fd= @fsockopen($host, $puerto, $errno, $errstr, 10 ))==FALSE ) # abrimos socket
return 0; # error, no se abrio el socket

fwrite($fd, $http_request); # enviamos datos
$buf=''; # buffer de recepcion

while( !feof($fd) ) # leeremos sockets hasta que termine  
$buf .= fgets($fd, 2048); # leemos
fclose($fd); # cerramos flujo  

$estado='';
preg_match("{[0-9]{3}}", $buf, $a); # obtenemos codigo recivido en transferencia
$estado= $a[0]; # copiamos estado
unset($a);
 
$failstatus= array( "400", "406", "502", "503" ); # codigos de error en consulta
foreach( $failstatus as $key )
{
if( !strcmp($key, $estado ) ) # si son iguales
echo 'Error en consulta: '. $estado;
# return 0; # error en la consulta
}
 
$r= explode( "\r\n\r\n", $buf );
 
echo '<br>Respuesta: '. $r[1];
}
?>

Se imprime:

Respuesta: 13 http://is.gd/DuSqfL 0

Saludos !


En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 954



Ver Perfil
Re: obtener enlace HTTP con preg_match ??
« Respuesta #1 en: 18 Febrero 2011, 23:47 »

Código
<?php
function is_gd( $url )
{
$host= 'is.gd'; # hostname
$get= 'create.php?format=simple'; # get basico  
$url= urlencode($url); # acondicionamos url
$get .= '&url='. $url; # concatenamos la url
$puerto= 80; # puerto a consultar

# trama HTTP
$http_request= "GET /$get HTTP/1.1\r\n";
$http_request .= "Host: $host \r\n";
$http_request .= "Connection: close\r\n";
$http_request .= "\r\n";
 
# consultamos
if( ($fd= @fsockopen($host, $puerto, $errno, $errstr, 10 ))==FALSE ) # abrimos socket
return 0; # error, no se abrio el socket

fwrite($fd, $http_request); # enviamos datos
$buf=''; # buffer de recepcion

while( !feof($fd) ) # leeremos sockets hasta que termine  
$buf .= fgets($fd, 2048); # leemos
fclose($fd); # cerramos flujo  

       preg_match("/13\r\n([^\r\n]+)/", $buf, $result);
       echo $result[0];
}
 
is_gd('http://lab.sie-group.net/');
?>

Salida:
Código:
http://is.gd/q9rWNd


« Última modificación: 18 Febrero 2011, 23:55 por ~ Yoya ~ » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Obtener la puerta de enlace en WIFI
Hacking Avanzado
centauri 4 18,431 Último mensaje 12 Enero 2005, 03:40
por centauri
daños q causa este enlace con virus???http://hometown.aol.com.au/miralafoto/foto
Seguridad
barna 11 2,308 Último mensaje 19 Enero 2006, 02:52
por kasador_one
Obtener puerta de enlace
Redes
MIKOLD 1 396 Último mensaje 30 Septiembre 2006, 23:35
por kamsky
Obtener codigo de status http [WinInet]
Programación C/C++
Ferсhu 5 996 Último mensaje 28 Abril 2008, 20:20
por Ferсhu
Obtener Cabecera HTTP con VB6
Programación Visual Basic
ProgramadorVB 1 659 Último mensaje 9 Junio 2010, 03:40
por DarkStreaM
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines