Идентификация удаленных пользователей

vvlad

Well-known member
19.01.2007
63
0
#1
Hi All!

Есть процедура в БД, которая получает данные из локальных сетевых ресурсов от имени работающего пользователя.
Соответственно эта процедура не работает, когда пользователь обращается к БД удаленно.

Возможно ли как-то программно идентифицировать удаленность текущего пользователя?


Платформа R8,5, доступ в БД только из Notes.

В голову лезут варианты:
1. парсить вывод ipconfig - результат не гарантирован, возможны совпадения;
2. сделать персональную настойку в профильном документе "работаю из локальной сети" или "работаю удаленно" - в идеале хотелось разобраться с этим вопросом без участия пользователя.

Может кто сталкивался? Подскажите куда копать?

Спасибо!
 

abbatik

Lotus team
20.10.2008
277
0
#2
Как полчаете? И что вы получаете?

Было бы не плохо увидеть кусок кода.

Я так понимаю из локейшена?
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#4
Возможно ли как-то программно идентифицировать удаленность текущего пользователя?
а чего ты хочешь этим достичь?.. в любом случае, если сетевой ресурс не доступен, то будет ошибка обращения.
показать юзер френдли сообщение? тогда пытаться отлавливать ошибку (on error), если система вернет ее в поток нотеса.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 567
263
#7
вызов идет удалённо, для сервера домины, а потому он не знает - как клиент вошёл
инфу тащим средствами ОС...
 
A

allex

#8
Проверить принадлежность пользователя к вашему серверу (хотя пользователь может и принадлежать...), если не свой, то по другому алгоритму

А если смотреть в локальный документ подключения, брать от туда интернет-имя и сравнивать его с IP/dns-nаmae локального компьютера.
Но было бы лучше , если бы записи имен IP/dns-nаmae серверов были одного формата (либо IP либо dns-name) - для простоты вычисления
 

vvlad

Well-known member
19.01.2007
63
0
#9
А если смотреть в локальный документ подключения...
Мне кажется не вариант - в подключении может быть что угодно, как IP так и DNS имя, подключений можт быть несколько....


А вот преобразовать имя сервера в IP адрес - это мысль.

Вот только как это лучше сделать - есть ли в лотусе средства для этого, или придется использовать nslookup ?
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#11
ну как по мне если это винда
можно в лотусе запустить ipconfig -> rez.txt
полученный файл обработать скриптом и четко понять удаленный это или свой, например на входе в какую нить БД ;)
 
A

allex

#13
есть апишки, которые позволяют получить все, что требуется.
Абцалютно согласен. Кому-то разрешено ходить строго по струнке, а кому-то куда и с кем попало.

Можно использовать в профильном доке (без доп. ключей) сеть или список сетей, все что не входит в список - твое
 
13.03.2009
625
1
#14
А вот преобразовать имя сервера в IP адрес - это мысль.
Вы сформулируйте - что есть локальность в вашем понимании.
Локальная сеть, 2 подсети. Шлюз с 2-мя интерфейсами 192.168.10.1/24 , 192.168.11.1/24
Cервер 192.168.10.2, клиент 192.168.11.2.
В такой конфигурации - клиент локальный или удаленный? По мне - так локальней некуда, хотя подсети разные...
ИМХО, в вашей задаче локальность = доступность сетевого ресурса. Тут парсинг ipconfig/ifconfig - ничего не даст.
Почему не пойти по пути, предложенному Akupaka: проверить доступность ресурса( напр. URLConnection.connect ) и в случае отлупа перейти к плану Б?
 

vvlad

Well-known member
19.01.2007
63
0
#15
А можно в этом месте поподробней?
Просто раньше не приходилось работать с api...



Вы сформулируйте - что есть локальность в вашем понимании.

Из локалки server.ru (Domino) резолвится в 192.168.1.1.
из вне в реальный адрес.

Соответственно исходя из этого и принимать решение.