Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Saber la direccion IP de un cliente (https://www.clubdelphi.com/foros/showthread.php?t=5233)

gendelphi 13-11-2003 19:12:45

Saber la direccion IP de un cliente
 
Hola a todos :)

Existe alguna forma de saber dentro de un trigger la direccion IP o el nombre del host, del cliente que ha provocado que se disparara el trigger.

Gracias.

guillotmarc 13-11-2003 21:11:17

Hola.

No hay ninguna variable que te dé esa información (quizá en IB 7, no lo he utilizado nunca).

Con Firebird 1.5 puedes jugar un poco con la nueva variable current_connection y una tabla auxiliar, para obtener ese resultado.

Añade una tabla CONEXIONES con los campos DIR_IP varchar(15) y CONEXION integer. (el campo CONEXION puede ser la clave primaria)

Al arrancar el programa y abrir la conexión, guardas en la tabla CONEXIONES, la dirección IP de la maquina que ha abierto esa conexion. Esto lo haces con la consulta (como puedes observar, pasamos la dirección IP como parámetro) :

insert into CONEXIONES (DIR_IP, CONEXION) values (:DIR_IP, current_connection)

Ahora, cuando quieras saber la Dirección IP del cliente que ha lanzado el trigger, solo necesitas una consulta del tipo :

select DIR_IP from CONEXIONES where CONEXION = current_connection

Finalmente no olvides eliminar el registro de la tabla CONEXIONES, cuando cierres el programa (antes de cerrar la conexión). Simplemente lanza una consulta del tipo :

delete from CONEXIONES where CONEXION = current_connection

Aunque no lo he probado, debería funcionarte correctamente. Pero recuerda que solo funciona con Firebird 1.5 (las versiones anteriores, no tienen la variable current_connection).

Saludos.


La franja horaria es GMT +2. Ahora son las 02:49:03.

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