Binding mod_curl [Descarga de ficheros de Internet]

Started by josebita, November 25, 2011, 12:32:52 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

Quote from: Erkosone on November 25, 2011, 02:56:00 PM
Lo de ilegal lo decía por que no estaba seguro, en el fondo es una chorrada si.
Ok, pues tomo nota, lo he comentado por que las lib tcp que hay por el foro ninguna está portada a iOS, entonces preguntaba si con la curl se podría hacer algo así.


Y si, poca gracia haría hacer esto por 3G la verdad.


Vale pues si se puede de alguna manera cuando esté la versión de la lib para windows e iOS registrar la IP los los teléfonos o iPod´s  que hagan la petición será genial.
La petición la haces contra el servidor que estará montado en lo que sea, desde Bennu hasta PHP pasando por todo lo demás.

Por ejemplo, lo que harías sería intentar "bajarte" la URL http://www.ejemplo.com/index.php?ping=1 y el script index.php se encargaría de registrar la IP, geolocalizarla y escribir la información obtenida en una base de datos.

De todas formas recuerda que la dirección IP del usuario es un dato privado -al menos en España- y debes tener la legislación sobre protección de datos en cuenta a la hora de manejar esa información. Te lo digo por si vas a hacer el mal con la información, luego no digas que no estabas avisado :)

SplinterGU

bueno, yo pense que se queria meter la libcurl porque se queria interfacear con un webserver... lo cual hace mas facil todo para personas con poco conocimiento de comunicaciones y tcp...

pero si se trata por portar, me parece mejor portar la libsock o libtcp (no me acuerdo el nombre exacto), porque no olvides la carga extra de memoria que mete la libcurl...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

joseba, no conozco esa ley, pero mientras estas conectado la ip es un dato que esta disponible... imagino que esa ley prohibi guardar la ip... o guarlarla en forma plana sin ningun tipo de encripcion... si guardas las ips o el dato que sea, encriptado con alguna key, nadie se va a enterar lo que estas guardando.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Quote from: SplinterGU on November 25, 2011, 04:09:12 PM
joseba, no conozco esa ley, pero mientras estas conectado la ip es un dato que esta disponible... imagino que esa ley prohibi guardar la ip... o guarlarla en forma plana sin ningun tipo de encripcion... si guardas las ips o el dato que sea, encriptado con alguna key, nadie se va a enterar lo que estas guardando.
Lo que quería decir es que no puedes es vender esos datos :)

Quote from: SplinterGU on November 25, 2011, 04:05:54 PM
bueno, yo pense que se queria meter la libcurl porque se queria interfacear con un webserver... lo cual hace mas facil todo para personas con poco conocimiento de comunicaciones y tcp...

pero si se trata por portar, me parece mejor portar la libsock o libtcp (no me acuerdo el nombre exacto), porque no olvides la carga extra de memoria que mete la libcurl...
Sí, la idea es ambas: poder descargar ficheros y comunicación con servidor web.
Se habrá notado, pero de redes no tengo ni idea, así que seguro que estoy diciendo barbaridades...

SplinterGU

yo creo que podrias portar muy facil la libtcp o la sock (nuevamente, no me acuerdo el nombre) y son muy livianas.

de comms tengo mucha experiencia.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Quote from: SplinterGU on November 25, 2011, 04:27:03 PM
yo creo que podrias portar muy facil la libtcp o la sock (nuevamente, no me acuerdo el nombre) y son muy livianas.

de comms tengo mucha experiencia.
Pero entonces complico mucho la descarga de ficheros (¿o no?). Mi idea es que sea muy sencillo descargarlos directamente, además de las comunicaciones con el servidor.

JaViS

Buenisimo!!


esto es algo que viene haciendo falta hace rato!


muchas gracias Josebita, nos abriste otra puerta mas con Bennu!!
Working on Anarkade. A couch multiplayer 2D shooter.

SplinterGU

yo lo implementaria por mensajes, pero si lo quieres hacer simple vale esa funcion, pero te falta otra funcion de mensajeria importante, que en la mayoria de los casos va a decir que archivos son los que se van a necesitar descargar.

duda que tengo, te fijaste cuanta memoria extra consume la lib+wrapper?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Quote from: SplinterGU on November 25, 2011, 06:08:17 PM
yo lo implementaria por mensajes, pero si lo quieres hacer simple vale esa funcion, pero te falta otra funcion de mensajeria importante, que en la mayoria de los casos va a decir que archivos son los que se van a necesitar descargar.

duda que tengo, te fijaste cuanta memoria extra consume la lib+wrapper?
No, pero lo miraré.

¿La forma que he puesto antes de mensajería se te antoja correcta? o ¿la implementarías de otra forma?

SplinterGU

yo lo haria asi...

int curl_get(string srcURL, string dstFILE, int * status);

y ese estatus cuando arranca setea un status de downloading, luego cuando termina, pone un ok o error, segun el caso.

pero necesitas si o si, una funcion de mensajeria, post/get y recibir la respuesta en una string o buffer que aloque dinamicamente la funcion y retorne un puntero...

necesitas poder setear cosas como timeout de mensaje, de conexion, cache o no de dns, si usas proxy o no, en caso de usar ssl hay unas cuantas opciones... asi que necesitas funciones para eso tambien... la mas importante y basica son las de timeout.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Lo primero es fácil: lo haré en un rato.


Lo segundo, me costará más... si se me complica te lo haré saber :)

SplinterGU

bien... al menos una simple post/get, en la que tienes que tener funciones para setear campos del request (curl_formadd), no olvides liberar los forms cuando ya no los uses (curl_formfree).

con eso podes armar una linda implementacion...

hay ejemplos muy simples en el site de curl.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

Ok, lo miraré. A ver si puedo contaros algo en un rato.

Erkosone


peterpollito

Genial! que rápido! pinta estupendo y para evitar ese limite de 20 megas de memoria en descarga para appstore es una solución suficiente.