variable pasar juntos insertar imprimir formulario ejemplos ejecutar dentro combinar codigo php internet-connection

pasar - ¿Determinar en PHP script si está conectado a internet?



insertar html en php echo (10)

¿Por qué no obtiene el código de retorno de wget para determinar si la descarga se realizó correctamente o no? La lista de valores posibles se puede encontrar en el estado de salida de wget .

Por otro lado, también puede usar las funciones de enrollamiento de php, luego puede hacer todo el seguimiento de errores desde PHP.

¿Cómo puedo verificar si estoy conectado a Internet desde mi script PHP que se ejecuta en mi máquina dev?

Ejecuto el script para descargar un conjunto de archivos (que puede o no existir) usando wget. Si intento la descarga sin estar conectado, wget pasa a la siguiente pensando que el archivo no está presente.


Esta función maneja lo que necesitas

function isConnected() { // use 80 for http or 443 for https protocol $connected = @fsockopen("www.example.com", 80); if ($connected){ fclose($connected); return true; } return false; }


Este código estaba fallando en el marco phra de laravel 4.2 con un error interno del servidor 500:

<?php function is_connected() { $connected = @fsockopen("www.some_domain.com", 80); //website, port (try 80 or 443) if ($connected){ $is_conn = true; //action when connected fclose($connected); }else{ $is_conn = false; //action in connection failure } return $is_conn; } ?>

Lo cual no quería enfatizarme para darme cuenta de eso, por lo tanto, probé este código y funcionó para mí:

function is_connected() { $connected = fopen("http://www.google.com:80/","r"); if($connected) { return true; } else { return false; } }

Tenga en cuenta que: Esto se basa en el supuesto de que la conexión a google.com es menos propensa a fallar.


Hay varios factores que determinan la conexión a internet. El estado de la interfaz, por ejemplo. Pero, independientemente de aquellos, debido a la naturaleza de la red, la configuración adecuada no tiene una conexión que funcione.

Entonces, la mejor manera es tratar de descargar un archivo que esté seguro de que existe. Si tienes éxito, puedes seguir a los siguientes pasos. Si no, vuelva a intentarlo una vez y luego falle.

Trate de elegir uno en el host de destino. Si no es posible, elige algún sitio web importante como google o yahoo.

Finalmente, simplemente intente verificar el código de error devuelto por wget. Apuesto a que son diferentes para 404-s y tiempos de espera. Puede utilizar el tercer parámetro en la llamada exec :

string exec (string $ command [, array & $ output [, int & $ return_var]])


La respuesta aceptada no funcionó para mí. Cuando se desconectó Internet, se produjo un error de php. Así que lo usé con una pequeña modificación que está abajo:

if(!$sock = @fsockopen(''www.google.com'', 80)) { echo ''Not Connected''; } else { echo ''Connected''; }


Puede hacer ping a un sitio popular o al sitio desde el que está obteniendo información (como www.google.nl) y luego analizar el resultado para ver si puede conectarse a él.

<?php $ip = ''127.0.0.1''; //some ip exec("ping -n 4 $ip 2>&1", $output, $retval); if ($retval != 0) { echo "no!"; } else { echo "yes!"; } ?>


Siempre puedes hacer ping a google bueno o confiable:

$response = null; system("ping -c 1 google.com", $response); if($response == 0) { // this means you are connected }


Solo verifica el resultado de wget . Un código de estado de 4 indica un problema de red, un código de estado de 8 indica un error del servidor (como un 404). Esto solo funciona si llama a wget para cada archivo en secuencia, en lugar de una vez para todos los archivos.

También puedes usar libcurl con PHP, en lugar de llamar a wget. Algo como:

foreach (...) { $c = curl_init($url); $f = fopen($filepath, "w") curl_setopt($c, CURLOPT_FILE, $f); curl_setopt($c, CURLOPT_HEADER, 0); if (curl_exec($c)) { if (curl_getinfo($c, CURLINFO_HTTP_CODE) == 200) { // success } else { // 404 or something, delete file unlink($filepath); } } else { // network error or server down break; // abort } curl_close($c); }


/* * Usage: is_connected(''www.google.com'') */ function is_connected($addr) { if (!$socket = @fsockopen($addr, 80, $num, $error, 5)) { echo "OFF"; } else { echo "ON"; } }


<?php function is_connected() { $connected = @fsockopen("www.example.com", 80); //website, port (try 80 or 443) if ($connected){ $is_conn = true; //action when connected fclose($connected); }else{ $is_conn = false; //action in connection failure } return $is_conn; } ?>