aplicacion java http ayuda porfavor!

saludos !!

Excelente sitio!! Bueno queria ver si me podrian ayudar orientandome en un proyectito que me he propuesto para seguir en mi aprendizaje de java ya que la mayoria de lo que he aprendido ha sido por mis ganas de aprender y buscar! Mi proyecto que me he propuesto es el siguiente: observando el funcionamiento del jdownloader
en la forma en que puede capturar un script de reconexion de un router y despues ejecutarlo para cambiar la ip, queria ver si alguien me podria orientar como es que se realiza este proceso, ya que cuando el programa realiza la reconexion no abre el navegador pero ingresa a la pagina de configuracion del modem despues ingresa la contrase~a del sistema que ya antes habia capturado en el script y llega a una opcion de restablecimiento de isp, como es que este programa realiza este proceso? investigando un poco ya que no he encontrado mucha informacion me imagino que captura las cookies asociadas a la direccion en este caso http://home e internamente llena campos y avanza en el sitio tengo una idea ? o es un funcionamiento diferente ? mi proyecto se basaria en que mi aplicacion java ingresara a una pagina sin mostrarla es decir sin abrir el navegador como lo hace el jdownloader para ingresar un user y password y que el programa ingrese automaticamente los datos y despues llene una serie de campos en la pagina siguiente y accione el submit.

de antemano les doy las gracias por su atencion espero me puedan ayudar! muchas gracias!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Re: aplicacion java http ayuda porfavor!

Migkiller:

¡Qué bueno que tienes ganas de aprender y buscar! Para lo que deseas hacer es importante que estés familiarizado en primer lugar con el funcionamiento de TCP y el API de sockets. Los dos libros siguientes te los recomiendo a-m-p-l-i-a-m-e-n-t.-e.

Stevens, W. Richard. TCP/IP Illustrated, Volume 1: The Protocols. US ed. Addison-Wesley Professional, 1994.

Stevens, W. Richard. UNIX Network Programming: Networking APIs: Sockets and XTI; Volume 1. 2nd ed. Prentice Hall PTR, 1998.

No todos los días se leen posts con preguntas sobre cómo sniffear, spoofear, etc., excepto por foros donde abundan los chavitos que quieren una manera fácil de crackear routers y sitios desde donde descargar pr0n.

Saludos

Javier

http://catb.org/esr/faqs/hacker-howto.html

Imagen de ezamudio

Cliente HTTP

Lo que describes es un cliente HTTP. Revisa la clase URL, URLConnection y HttpURLConnection, del paquete java.net; esta última clase es la que te permite hacer cosas como lo que mencionas.

Primero creas un objeto URL con la dirección a donde quieres conectarte. Luego invocas openConnection() sobre ese URL, haces cast del valor de retorno a HttpURLConnection (porque finalmente el URL lo creaste con una dirección http:// ) y ya de ahi tienes algo de control sobre la conexión.

Recuerda que HTTP es un protocolo asíncrono así que primero envias todos los datos necesarios y luego lees la respuesta. Si vas a hacer un POST por ejemplo, necesitas invocar setRequestMethod("POST") y setDoOutput(true). Para entonces ya deberías tener los datos que vas a enviar, en el formato correcto o sea campo1=valor1&campo2=valor2 etc (codificados a URL usando la clase URLEncoder). Invocas a addRequestProperty("Content-Length") pasando el tamaño de los datos que vas a enviar, luego los envias con el output stream de la conexión, cierras ese output stream para que se haga un flush, y pides el input stream a la conexión para leer la respuesta.

De ahi tienes que parsear el HTML. Si necesitas cookies que vengan en la respuesta, pidelas con getHeaderField("Set-Cookie") a la conexión. Esas las vas a tener que enviar (procesando sus datos, no tal y como te las mandan) haciendo un addRequestProperty("Cookie") en la siguiente conexión.

Imagen de bonfil1

Jajaja

tienes toda la razon jaja, pues si como dice Javier esta bien que busques la solociun a eso son los sockets yo una vez intente hacer uno pero la verdad no lo e terminado deja lo termino publico el sourcecode

Saludos

Bonfil