powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / IB/FB - user - IP
12 сообщений из 12, страница 1 из 1
IB/FB - user - IP
    #32501140
bSava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот возникла ситуация в которой желательно получить IP подключенного юзера (список IP). Ничего похожего не нашел, строить таблицу и хронить в ней IP для юзеров не подойдет, IP выдаются динамически? Можно это дело сделать средствами IB/FB? Или придется dll писать?
...
Рейтинг: 0 / 0
IB/FB - user - IP
    #32501617
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netstat тебе в руки :)
...
Рейтинг: 0 / 0
IB/FB - user - IP
    #32501769
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gds_lock_print выдает PID процессов.А по PID можно и IP найти. Интерфейс конечно у него хреновый.
...
Рейтинг: 0 / 0
IB/FB - user - IP
    #32502579
bSava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srf2000netstat тебе в руки :)
А кто сказал что Login и имя компа совпадают?
FreemanZAV gds_lock_print выдает PID процессов.А по PID можно и IP найти
А поподробней где есть почитать? Если не сложно ссылочку бы.
...
Рейтинг: 0 / 0
IB/FB - user - IP
    #32502607
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю таких ссылок, где это популярно описано. Поищи на IbPhoenix.
...
Рейтинг: 0 / 0
IB/FB - user - IP
    #32502623
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 bSava: ты просил IP - причем здесь логин?
...
Рейтинг: 0 / 0
IB/FB - user - IP
    #32502898
bSava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srf2000 ты просил IP - причем здесь логин?
А при том что нужно знать соответствие "IP - USER подключенный к базе", вот причем.
...
Рейтинг: 0 / 0
IB/FB - user - IP
    #32503002
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to bSava
Ну это я пока не решил полностью. Но для пользователей, которые подключаются через программы собственной разработки эта проблему я решил. Если интересно, могу рассказать.
...
Рейтинг: 0 / 0
IB/FB - user - IP
    #32503063
bSava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAVЕсли интересно, могу рассказать.
Конечно интересно, можно на мыло или сюда, как удобней, буду очень признателен.
...
Рейтинг: 0 / 0
IB/FB - user - IP
    #32503079
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to bSava.
Но при таком подходе придеться внести небольшие изменения в клиентские приложения (3 строчки кода). К тому же, такой подход работает только в Classic.
...
Рейтинг: 0 / 0
IB/FB - user - IP
    #32503102
bSava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FreemanZAV Но при таком подходе придеться внести небольшие изменения в клиентские приложения (3 строчки кода).
Это не проблемма хоть тридцать три...
FreemanZAV К тому же, такой подход работает только в Classic.
А вот это мне непонятно, чем Super неугодил?
Но все равно если не сложно расскажи.
...
Рейтинг: 0 / 0
IB/FB - user - IP
    #32503153
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bSavaА вот это мне непонятно, чем Super неугодил?
Я не знаю в тонкостях принцип работы Super и поэтому для Super не могу (и не хочу) это реализовывать. Ну в в двух чертах принцип такой. Есть UDF ф-ии GET_PID-возвращает ID текущего процесса (для Super не подходит стопудово), GET_HOST- имя компьютера, IS_PROCESS_EXIST - проверка существования процесса и GET_HOST_PID - имя компа по процессу.
Далее в БД создается таблица:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE USERS_CLIENT (
    USERS_CLIENT_ID  INT_NNUL  /* INTEGER NOT NULL  */ ,
    PID              INT_NNULL  /* INTEGER NOT NULL  */ ,
    COMPNAME         VARCHAR30_NNULL  /* VARCHAR(30) 1 NOT NULL */  NOT NULL,
    USER_NAME        VARCHAR30_NNULL  /* VARCHAR(30) 1 NOT NULL */  NOT NULL,
    DATE_ADD         DATE_NOW_NULL  /* DATE  */ ,
    TIME_ADD         TIME_NULL  /* TIME  */ 
);


USER_NAME - это текущий пользователь.
После коннекта приложение посылает на сервер запрос типа:
Код: plaintext
INSERT INTO USERS_CLIENT ( USERS_CLIENT_ID)  VALUES (NULL);

Ну вот, примерно так.
Триггерами заполняются нужные поля и удаляются несуществующие процессы запросом типа:
Код: plaintext
delete from USERS_CLIENT u where IS_PROCESS_EXIST(u.pid)= 0   

Ну а список пользователей получаем так
Код: plaintext
select * from USERS_CLIENT u where IS_PROCESS_EXIST(u.pid)<> 0   
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / IB/FB - user - IP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]