Имя: Пароль:
1C
1С v8
IP-адрес в веб-клиенте
,
0 hardsign
 
24.03.15
16:21
Задача - ограничить доступ пользователям по ip. 8.3 УФ. Пользователи ходят только веб-клиентом. Сервер на хостинге, не внутри сети. IP интересен только внешний.

Есть несколько решений, как получить внешний адрес - либо выполнять запрос на 2ip.ru и парсить возвращаемый ответ, либо через вебсервисы.

Но проблема в том, что код необходимо выполнять на клиенте - класс HTTPСоединение на веб-клиенте не поддерживается (максимум - тонкий клиент).

Возможно, у кого-то есть решение. Возможно, есть расширение для веб которое позволяет организовать этот метод, либо каким-то образом можно получить ip из сессий на сервере.
1 hardsign
 
24.03.15
16:22
а, ну и собственно вопрос, хотя он понятен -

как получить внешний IP подключенного пользователя?
2 oleg_km
 
24.03.15
16:28
В веб-доступе IP клиента имеет неоднозначный смысл. Нужно понимать, что сервер может увидеть только IP последнего NAT или прокси. Если же клиентская часть получит IP например с помощью JS то он скорее всего будет серым внутренним IP в котором непонятен смысл.

Какова задача, что требуется по существу?
3 France
 
24.03.15
16:29
4 hardsign
 
24.03.15
16:30
(3) можно. Но это всех пользователей в общую кашу. А надо каждый логин 1С к определенному IP
5 hardsign
 
24.03.15
16:30
(2) да, понимаю. мне и нужен адрес шлюза.
6 Stim
 
24.03.15
16:30
а не лучше ли ограничить на уровне файервола сервера или какого-нить апача?
7 hardsign
 
24.03.15
16:31
(3) а, и кроме того - есть несколько пользователей в "god mode" - которым можно хоть из Австралии.
8 hardsign
 
24.03.15
16:32
(6)
см. ответ 7 и 4
9 hardsign
 
24.03.15
16:33
(6) для такой реализации возможен только один путь - если пользователи будут логиниться на файрволл сервера.
10 alex_shkut
 
24.03.15
16:33
и в итоге получишь ИП виртуального сервера для всех :)
11 hardsign
 
24.03.15
16:35
(10) его я получаю, если выполняю класс HTTPСоединение на сервере - беру ответ с 2ip.ru и провожу парсинг. Имею ip сервера.
А мне надо - клиента
12 France
 
24.03.15
16:35
(7) заадача своих пользователей привязать к айпи (чтобы с другого не мог зайти), или чтобы по айпи не ломились все кому не лень с получением окна авторизации 1С?
13 Stim
 
24.03.15
16:36
при запуске 1С появляется поле ввода "Введите ваш ip"
14 hardsign
 
24.03.15
16:37
видел еще варианты через WMI. Но это серые ip, да и WMI тоже недоступен в веб-клиенте.
Разработчики обещали в 2013, что добавят метод для получения внешнего адреса. Воз и нынче там?:(
15 hardsign
 
24.03.15
16:38
(13) и пользователь который заходит из дому - вводит рабочий ip и его пропускает. А надо добиться того, чтобы работали на работе, а дома отдыхали:)
16 France
 
24.03.15
16:39
(15) банить по времени входа..
17 France
 
24.03.15
16:39
и гуд моде сразу будет доступен
18 Rebelx
 
24.03.15
16:42
(0) а что по этому поводу говорит СистемнаяИнформация.ИдентификаторКлиента?
19 Rebelx
 
24.03.15
16:42
не достаточно ли этого?
20 hardsign
 
24.03.15
16:45
(12) задачи актуальны обе две:)
часть пользователей надо отсекать, чтобы не могли заходить
трем пользователям надо "без ограничений в любое время"

(18)
там только гуид клиента возвращается. не понимаю как через него сделать
21 Rebelx
 
24.03.15
16:47
(0) чем тебе гуид от IP отличается? Он привязан к машине и пользователю ОС. что может быть лучше?
22 hardsign
 
24.03.15
16:49
(21) 200 пользователей. в среднем по 5-10 на точку.
как это администрировать?
Да и гуид будет различаться для каждого браузера на той же машине.
23 Stim
 
24.03.15
16:50
имхо, только парсинг 2ip
24 hardsign
 
24.03.15
16:53
(23) с удовольствием. Но он не работает в веб-клиенте:)
Прочитал, что HTTPСоединение доступен на "внешнее соединение". Можно ли каким то образом запустить этот класс из веб-клиента обходными путями?
25 eklmn
 
гуру
24.03.15
17:01
в роли файрвола что стоит? не проще ли скрипт написать чтоб ложил тебе в папку айпи, а при авторизации в тонком будешь проверять файлик
26 France
 
24.03.15
17:01
небольшое веб-приложение, которое запускается пользователем, и если "все ок", перенаправляет на 1С веб-сервис. веб-приложением легко получить ип пользователя))
27 Stim
 
24.03.15
17:05
(24) а зачем тебе HTTPСоединение?
открываешь страничку под пользователем, грабишь содержимое странички
28 hardsign
 
24.03.15
17:06
(27) а как ее открыть?
29 hardsign
 
24.03.15
17:07
(27) и затем передать в парсер?
30 Aprobator
 
24.03.15
17:11
А по адресу сетевой карты не логичнее будет, как у тех же провайдеров? Не у всех же фиксированный IP.
31 Aprobator
 
24.03.15
17:12
Кстати, а нафига подобный доступ проверять на уровне 1С?
32 Stim
 
24.03.15
17:13
(28) делаешь обработку(или общую форму), на форме - реквизит, тип строка. элемент формы - вид Поле HTML документа.

даешь этому элементу адрес, при открытии формы - Элементы.моеаштмл2ип.Вперед();

после разбираешь этот реквизит на составляющие и ищешь там своё ip
33 Aprobator
 
24.03.15
17:18
А - сервер на хостинге. Голодранцы
34 hardsign
 
24.03.15
17:49
(32) дать адрес свойством URIДокумента? Не поддерживается в веб-клиенте:)
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.