Только что провернул такую штуку.

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

Ваши камменты?


Ответить