![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
¿Cómo detectar si la conexión es LAN o WAN?
Hola:
he desarrollado un programa usando el Delphi 2009, consta de un módulo servidor y otro cliente, usando tecnología DataSnap, muy buena por cierto. El módulo cliente tiene la habilidad de detectar si el usuario está en la conexión LAN de su trabajo o WAN si está fuera de la oficina para poder conectar a la Base de Datos. Existe una IP Privada para la LAN y otra IP pública para la WAN y la forma que se me ha ocurrido para detectar el tipo de red a la que debe conectarse no es otra que usando lo siguiente: [delphi] procedure TDM.DataModuleCreate(Sender: TObject); var PathLocal, PathServidor: string; NombreExe: PChar; begin NombreExe := 'NombrePrograma'; PathLocal := 'C:\Aplicaciones\'+NombreExe+'.exe'; SQLConnection.Close; SQLConnection.Params.Clear; SQLConnection.Params.Add('Port=nnnn'); SQLConnection.Params.Add('User_Name=sa'); SQLConnection.Params.Add('Password=********'); // Prueba Conexión LAN IpFtp := 'IP.PRIVADA'; SQLConnection.Params.Add('HostName='+IpFtp); PathServidor := '\\'+IpFtp+'\wwwroot\Aplicaciones\'+NombreExe+'.exe'; if FileExists(PathServidor) then begin Conexion := 'Conexión vía LAN'; end else begin // Prueba Conexión WAN IpFtp := 'IP.PUBLICA'; SQLConnection.Params.Delete(SQLConnection.Params.Count-1); SQLConnection.Params.Add('HostName='+IpFtp); PathServidor := '\\'+IpFtp+'\wwwroot\Aplicaciones\'+NombreExe+'.exe'; if FileExists(PathServidor) then begin Conexion := 'Conexión vía WAN'; end else begin ShowMessage('No se ha podido conectar vía LAN ni WAN'); EXIT; end; end; end; [\Delphi] El código anterior, que solo muestra lo principal, funciona. Lo malo que tiene que la instrucción 'FileExists' es muy lenta y en ocaciones cuando se está fuera de la oficina demora cerca de 2 minutos en dar respuesta. Mi pregunta es: ¿Conocen otra técnica, que responda mas rápidamente en reemplazo alo que utilizo actualmente? Mucha gracias |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Detectar conexión tipo/activa | taita | Internet | 3 | 13-05-2015 21:43:46 |
Detectar problemas de conexion.... | Jose Roman | Conexión con bases de datos | 1 | 04-02-2009 16:44:09 |
Detectar conexion Firebird | brandolin | Conexión con bases de datos | 1 | 19-12-2005 18:12:07 |
Lanzar aplicacion al detectar conexion a internet | Delphius | API de Windows | 16 | 30-03-2005 15:43:59 |
Detectar una conexion a internet | JCR | Internet | 1 | 02-06-2004 22:12:04 |
![]() |
|