Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Verificar la Conexión a internet (https://www.clubdelphi.com/foros/showthread.php?t=71881)

servicomp 15-01-2011 20:59:54

Verificar la Conexión a internet
 
Cordial saludo

Compañeros actualmente estoy desarrollando un aplicativo el cual envia correos electronicos, la cual me esta funcionando muy bien usando el Indy, pero me gustaria controlar por software si hay o no hay conexión a internet.

Saben cual es la forma de saber si el sistema esta conectado a internet o No esta conectado.

Agradeciendo de antemano la atención prestada


Macana

radenf 15-01-2011 21:13:44

Estimado servicomp:

El otro día vagando por la red encontré unos componentes gratuitos (ICS-Internet component suite) que permiten hacer mil y una cosas en el tema de internet y conexiones. Yo los utilizo para hacer ping a servidores y verificar de ese modo si están conectados.
Revísalos en este link:

http://www.overbyte.be/frame_index.html

Quizás pueda servirte para tu actual proyecto o proyectos futuros.

Saludos

servicomp 15-01-2011 21:37:27

si ya los he visto pero no los he usado debido a que dicen que son para delphi 7 y estamos usando delphi 10. los has probado con el d10

servicomp 15-01-2011 21:52:05

Disculpas, ya los baje y los examine, y se encuentra para casi todas las versiones. A primera vista no veo un ejemplo para verificar si esta conectadoi a internet o no, pero seguire buscando

ecfisa 15-01-2011 22:44:21

Hola.

Una opción muy simple es usar la función InternetGetConnectedState .

Código Delphi [-]
...
uses WinInet;

function HayInternet: Boolean;
var
  Estado: Cardinal;
begin
  Estado := INTERNET_CONNECTION_MODEM or INTERNET_CONNECTION_LAN or INTERNET_CONNECTION_PROXY;
  Result := InternetGetConnectedState(@Estado, 0);
end;

Ejemplo de llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  if HayInternet then
    ShowMessage('Conectado a internet')
  else
    ShowMessage('Desconectado de internet');
end;

Un saludo.

servicomp 16-01-2011 17:01:38

Te cuento que hice las pruebas con este codigo, y no me ha funcionado, al parecer lo que podemos saber es si hay conexiones activas, pero no sabremos si hay internet.

Me explico. Si desconecto el modem adsl, y mi computador sigue conectado al Routher, el cual esta encendido y funcionando correctamente, la función siempre detecta la conección a internet,

ecfisa 16-01-2011 18:20:17

Hola.

Tenés razón, no había evaluado esa posibilidad...

Otra forma (no muy elegante) es usando el componente TIdIcmpClient con uno o mas host conocidos.

Código Delphi [-]
function TForm1.HayInternet: Boolean;
const
  SITIOS: array[1..3] of string =('www.clubdelphi.com','www.google.com.ar','www.yahoo.com');
var
  i: Integer;
begin
  Result:= False;
  i:= 0;
  while (i < 3) and not Result do
  begin
    Inc(i);
    Caption:= IntToStr(i);
    IdIcmpClient1.Host:= SITIOS[i];
    try
      Result:= True;
      IdIcmpClient1.Ping;
    except
      Result:= False;
    end;
  end;
end;

//Llamada:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if HayInternet then
    ShowMessage('Conectado a internet')
  else
    ShowMessage('Desconectado de internet');
end;

Buscando encontre este [ código ]. (No lo probé)

Un saludo.


La franja horaria es GMT +2. Ahora son las 02:42:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi