Только что провернул такую штуку.
UDF
function PID:Integer; cdecl; export;
begin
Result := GetCurrentProcessId;
end;
DECLARE EXTERNAL FUNCTION PID
RETURNS INTEGER BY VALUE
ENTRY_POINT 'PID' MODULE_NAME 'IBUTILS.DLL'
----
select PID() from rdb$database
выдает PID родного процесса. Именно _РОДНОГО_ а не листенера.
Выводы:
Вводя элементарную таблицу
create table IBCON
(
REMOTE_IP varchar(32) not null primary key,
CON_TS timestamp not null,
PID integer not null
)
можно всегда (при входе в программу например)
заполнить эту таблицу и мы будем иметь всегда
связку PID -> IP_ADDRESS
Ваши камменты?