Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?
18 usuarios Online (0)
Darse de alta en la web | Recuperar password   
Inicio / Archivos de la web / Scripts / QuestZ / Versión 0.9beta2

Datos del Archivo

  • Autor/es: thessoro
  • Fecha de alta: 15-01-2007
  • Descargas: 900

Votación

No estás registrado

Descarga

Archivo tar.gz

Descargar Archivo

(16,70 KB)

Otras versiones

QuestZ v0.9beta2

Valoración (5,00 en 3 votaciones )

QuestZ es un script que realiza peticiones HTTP para envío de datos, recupera código HTML de páginas web y realiza envío de datos por POST, subida de archivos...

Características
--------------------
* Con QuestZ puedes enviar datos por POST (rellenado automático de formularios) y por GET
* Añade y modifica cookies y referer de forma transparente.
* Continúa por sí mismo a través de múltiples redirecciones hasta la página destino
* Permite la subida de archivos por POST (file-upload) pudiendo especificar el Content-Type
* Realiza peticiones por http y el protocolo seguro https (requiere openSSL)

* Admite la recepción en trozos de los datos (Transfer-Encoding: chunked - los 'chunks' implementados en HTTP 1.1-)
* Admite la recepción de código comprimido (Content-Encoding: gzip) descomprimiéndolo automáticamente (necesaria la librería Zlib -incluida por defecto en Windows-)
* Soporta autenticación básica HTTP
* Soporta autenticacion Digest HTTP (en desarrollo y sólo para version PHP5)


Otras features:
- Visualización de las cabeceras intercambiadas y las distintas URLs por las que atraviesa la petición.
- Posibilidad de modificar el userAgent, cookies, referer en cualquier momento.

Nota: QuestZ requiere de PHP >= 4.1.0 o mayor para funcionar. Recomendada la extensión Zlib (por defecto en Windows) y openSSL si quereis hacer peticiones a páginas seguras.
En el archivo realmente se implementan 2 versiones, una para PHP 4 y otra para PHP 5. El script se ejecutará deacuerdo a tu versión de PHP. Algunas features podrían no estar disponibles en la versión PHP 4.

Nota2: Si usas este script para hacer el cafre y atacar paginas web con file-uploads automáticos o haciendo cualquier otra guarrería similar es bajo tu propia responsabilidad. QuestZ ya es útil de por sí para recuperar cualquier tipo de información de páginas web, el resto es cosa tuya.

Para bugs o sugerencias: thessoro@gmail.com

El código probablemente tenga más de un bug ya que nadie se ha ofrecido como tester (bueno, sí, han aceptado pero no han hecho nada) así que en los agradecimientos no consta nadie. A joderse.
(actualización: ups si, se me olvidaba incluir en los agradecimientos a {Arias} por su ayuda con los patrones de diseño y sus sugerencias de organización de clases)

Características de esta versión:

/*

CHANGELOG
15-01-07 Version para PHP4 con fsockopen en vez de stream_socket_client
15-01-07 Nuevo metodo getURL que recupera la URL actual.
xx-11-06 Autenticación Digest (...)
20-11-06 Nueva distribucion de clases, completa reestructuración de código
14-11-06 Ya no hace falta la extensión de socket
PHP_NORMAL_READ no funciona en windows porque la inepta de Ilia lleva
desde 2002 sin arreglar un puto bug,
así que todas las conexiones se realizan a traves de los clientes tipo
stream_*. Al ser un script completamente distinto lo he subido a 0.8
09-11-06 No mas dies. Manejo de excepciones
09-11-06 Cambio en showHeaders para que introduzca un <br />
en caso de probarlo a través de un navegador
$peticion->showHeaders( bool $show, <bool $browser>);




Comentarios (19)

Avatar de turl #1 turl
22 ene 07 (04:01)
Muy bueno. Me ayudó mucho para automatizar unas tareas en mi hosting, ya que este solo tiene panel y no da acceso ssh ni nada por el estilo. Asi que con tu class unos post, unos get y voilá! Cree una BD y una cuenta FTP.
Por cierto, ¿Puedo usar tu class en un script PHP que estoy preparando para publicar?

Gracias por todo!

PD: Para los que lo conozcan, el host es Servage (realmente no lo recomendaría, limita los Update de las BD y es un cluster, por lo que no puedes dejar nada corriendo)
Avatar de thessoro #2 thessoro
22 ene 07 (11:27)
Pues gracias xD.
Sí puedes usar/modificar/publicar/vender la clase según los términos de la GPL, es decir manteniendo su copyright, el aviso de la propia licencia GPL y asegurando la disponibilidad del código para que terceras personas también lo pudieran -eventualmente- hacer.
Y ya pues si pones un link aquí pues genial xD
Avatar de turl #3 turl
22 ene 07 (17:48)
Gracias xD
Por cierto: ¿Qué freatures no incluyes en la versión PHP4?
Avatar de thessoro #4 thessoro
23 ene 07 (00:54)
En PHP < 4.3.0 el soporte SSL no funcionará, o sea no podras realizar peticiones a https://...
La autenticacion Digest tampoco esta implementada. Realmente tampoco se si funciona con PHP 5 puesto que no he encontrado ningun servidor que la use, asi que no es muy importante: la gran mayoria, de usar, usa autenticacion Basic.

Eso en la teoría, en la práctica, si veo un bug intento corregirlo en ambas versiones pero donde realmente van los esfuerzos es para la otra versión, de todos modos lo intentaré notificar si me entero.
Avatar de turl #5 turl
23 ene 07 (19:39)
Yo estoy corriendo el script en php 4 y https:// funciona de maravillas.

Por cierto: ¿Puedes mirar mi script de ArchivosTMP?
Avatar de samsa #6 samsa
24 ene 07 (10:18)
no entiendo nada.

Perdonar mi ignorancia pero no se para q sirve el script y en q ejemplos se puede utilizar o como utilizarlos he probado subirlo al servidor y a realizar los ejemplos q pone en el script pero no me hace nada de nada.
Avatar de thessoro #7 thessoro
24 ene 07 (14:08)
Es que si no sabes en qué lo estas utilizando no te puedo decir, a no ser que muestres algun error o algo parecido.
En la mayoría de ejemplos se presupone que tienes una cuenta en algun sitio y tienes que poner tu pass/cuenta o algo así. Pero yo creo que leyendo ejemplos.txt es suficientemente explicativo.

<?php
include 'QuestZ.php';

$peticion = new QuestZ();

$peticion->setCookies(array('pass'=>'********************************','id'=>'***********'));
$peticion->getRequest('http://php-hispano.net');
echo $peticion->getRequest('http://php-hispano.net/index.php?s=panel');
?>
En este ejemplo tendrias que sustituir los *** por las cookies que instaura php-hispano en tu pc. Tambien podrías enviar por POST directamente tu pass/login:

$data = array(
'login'=>'tu_nombre',
'pass'=>'tu_pass',
'enviar_login'=>'Conectar &raquo;');

$peticion->postRequest('http://php-hispano.net/index.php',$data);
echo $peticion->getRequest('http://php-hispano.net/index.php?s=panel');

Con esto se mostraria el codigo HTML de tu panel de control. En subsiguientes peticiones getRequest podrias por ejemplo recuperar tu lista de memos, o postear en un foro sin entrar en la pagina.
De todos modos esto no es algo que puedas subir y ver funcionar como un foro, o un libro de visitas, esto es una herramienta, primero la necesitas y luego la usas, no al reves. xD La aplicacion que le des depende de ti y no del script.

Avatar de panino #8 panino
24 feb 07 (19:51)
Hola, thessoro, de nuevo te transmito mis felicitaciones por esta herramienta. Al mismo tiempo te hago una consulta, cómo podría usarse para conectarse con un webservice?
Avatar de turl #9 turl
25 feb 07 (19:54)
panino, expilcate un poco más. A que webservice? Que autenticación usa? Formulario por POST, por GET, o login de Apache?
Fijate en los ejemplos que hay uno de cada tipo.
Avatar de panino #10 panino
25 feb 07 (21:15)
Me refería a una consulta vía SOAP, pero ya está resuelto. Gracias.
Avatar de turl #11 turl
01 mar 07 (04:19)
Otra vez te agradezco por esto. Se me ha ocurrido otra utilidad relacionada con las Descargas Directas. Espero pronto subir el Script a los archivos temporales. ¿Puedo incluir tu archivo en mi Script? (No lo editaré nada de nada)

Otra vez gracias por todo!
Avatar de turl #12 turl
09 may 07 (01:29)
Le he encontrado un bug a QuestZ: Si realizas un POST a un script que devuelve un archivo Mas o menos grande, QuestZ dará una salida en BLANCO (Vacía). En cambio si por ej. el archivo pesa 5 MB, funciona bien.

Lo puedes arreglar?
Avatar de shr3kull #13 shr3kull
21 may 07 (15:51)
buenas... tengo una pequeña duda:

Si en alguna pagina hay un formulario para acceder mediante user y pass pero en vez de un boton de submit hay un javascript, como puedo hacer que se loge mediante el questZ?

idusuarioLogin
claveLogin
javascript:usuarioLogin('loginIntro');

deberia llamarlo de alguna forma en concreto o como lo podria hacer? Muchas gracias
Avatar de shr3kull #14 shr3kull
21 may 07 (16:15)
sorry... no se si esto hara falta, pero por si acaso tambien lo pongo

El action del form es javascript:void%200

Como lo podria hacer? gracias
Avatar de thessoro #15 thessoro
21 may 07 (19:17)
pues tendrias que ver qué submit hace el código javascript, si no tienes idea lo más sencillo sería instalar alguna extension del firefox que muestre las cabeceras HTTP.
Con esto simulas un envío real con el navegador y consultas las cabeceras: cuántos y qué datos por POST se envían para "imitarlo" lo más fielmente posible con los métodos de QuestZ.

Avatar de shr3kull #16 shr3kull
22 may 07 (16:58)
he buscado en el código javascript a que pagina lo envía y ya lo tengo funcionando. gracias ;)

Por cierto, sabes de alguna extensión para mostrar cabeceras http?
Avatar de thessoro #17 thessoro
11 jul 07 (00:13)
Es muy útil la extensión para Firefox "livehttpheaders"
Avatar de shr3kull #18 shr3kull
12 jul 07 (12:02)
es la que encontré y he estado usando hasta el dia de hoy (y no solo para esto sino para otras cosas)

Muy útil, la verdad. Gracias
Avatar de turl #19 turl
23 jun 08 (22:19)
thessoro, te he mandado un email sobre QuestZ ;)
Para poder participar debes estar registrado e identificado. Si no estás registrado como usuario de PHP-Hispano, :: Registrar ::
Login / Password   

Web alojada en Zilos

php-hispano.net 2002 - 2008 | XHTML 1.0
Datos Legales | Webmaster