elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Saber lo que pasa un fichero... en internet
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Saber lo que pasa un fichero... en internet  (Leído 1,758 veces)
dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Saber lo que pasa un fichero... en internet
« en: 19 Marzo 2015, 19:09 pm »

Pues imaginaros que tengo la web:

www.miweb.com

Y quiero saber cuanto pesa el fichero www.google.es/basededatos/backup2014.bak

Sé que se puede saber, pero no sé como sin descargar el fichero ¿Alguien me ayuda?


En línea




EFEX


Desconectado Desconectado

Mensajes: 1.171


"Dinero Facil"


Ver Perfil WWW
Re: Saber lo que pasa un fichero... en internet
« Respuesta #1 en: 19 Marzo 2015, 19:38 pm »

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13 ?


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Saber lo que pasa un fichero... en internet
« Respuesta #2 en: 19 Marzo 2015, 19:42 pm »

Tendrías que mirar el Content-Length que te devuelve el server en los headers.

Código
  1. <?php
  2.  
  3. /**
  4.  * Devolver Content-Length de una url.
  5.  * @param  [string]  $url - URL para request.
  6.  * @return [integer]      - Tamaño en bytes.
  7.  */
  8. function remoteSize($url){
  9.    $head = get_headers($url,true);
  10.    return (isset($head['Content-Length']) ? (int)$head['Content-Length'] : null);
  11. }
  12.  
  13. /* ejemplo - (retorna: 1044381696) */
  14. echo remoteSize('http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-desktop-amd64.iso');
  15.  
  16. ?>

Aunque supongo que te vendría mejor utilizar curl o algo parecido porque get_headers() esta algo limitado por defecto y algunos servidores te podrían negar la consulta por no tener user-agent por ejemplo.

La idea es obtener los headers y cortar la conexión sin recibir el body.

Saludos
En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Saber lo que pasa un fichero... en internet
« Respuesta #3 en: 19 Marzo 2015, 20:26 pm »

Tendrías que mirar el Content-Length que te devuelve el server en los headers.

Código
  1. <?php
  2.  
  3. /**
  4.  * Devolver Content-Length de una url.
  5.  * @param  [string]  $url - URL para request.
  6.  * @return [integer]      - Tamaño en bytes.
  7.  */
  8. function remoteSize($url){
  9.    $head = get_headers($url,true);
  10.    return (isset($head['Content-Length']) ? (int)$head['Content-Length'] : null);
  11. }
  12.  
  13. /* ejemplo - (retorna: 1044381696) */
  14. echo remoteSize('http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-desktop-amd64.iso');
  15.  
  16. ?>

Aunque supongo que te vendría mejor utilizar curl o algo parecido porque get_headers() esta algo limitado por defecto y algunos servidores te podrían negar la consulta por no tener user-agent por ejemplo.

La idea es obtener los headers y cortar la conexión sin recibir el body.

Saludos

Segun la documentacion el metodo por default para get_headers es GET y en este caso lo recomendado seria simplemente usar HEAD. Tienes que usar esto, antes de get_headers();

Código
  1.    array(
  2.        'http' => array(
  3.            'method' => 'HEAD'
  4.        )
  5.    )
  6. );

Tambien lo puedes hacer con curl:

Código
  1. <?php
  2.  
  3. function getContentLength($url){
  4. $curl = curl_init($url);
  5. curl_setopt($curl, CURLOPT_NOBODY, TRUE);
  6. curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
  7. curl_exec($curl);
  8. $contentLength = curl_getinfo($curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
  9. return $contentLength;
  10. }
  11.  
  12. echo getContentLength('http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-desktop-amd64.iso');
  13. ?>
En línea

dimitrix


Desconectado Desconectado

Mensajes: 4.847



Ver Perfil WWW
Re: Saber lo que pasa un fichero... en internet
« Respuesta #4 en: 24 Marzo 2015, 18:20 pm »

Sólo me queda decir "muchas gracias".

Eso sí, una duda más, una vez tengo el número de caracteres ¿Cómo se el tamaño?

Porque la función pone que retorna el número de "bytes" por lo que un carácter es un binario de 8 dígitos, pero... ¿Y si es un UTF-16? Creo que usaba bloques de más de 8 bits por lo que usaría 2 o 4 bytes (según wiki pueden ser 4 :S).
En línea




Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Alguien sabe como saber qe pasa por el puerto USB
Hacking Mobile
nigromante 1 5,126 Último mensaje 28 Julio 2006, 02:11 am
por #Borracho.-
Como leer/Escribir un fichero txt en C# sin saber la ruta
.NET (C#, VB.NET, ASP)
txitxo0 3 10,221 Último mensaje 13 Enero 2009, 13:23 pm
por MANULOMM
[batch]saber la fecha de creacion de un fichero
Scripting
daryo 0 6,387 Último mensaje 23 Abril 2013, 19:27 pm
por daryo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines