|
Получить внешний IP в веб-клиенте | ☑ | ||
---|---|---|---|---|
0
hardsign
29.05.15
✎
16:47
|
Уже спрашивал, но тема в архив ушла. Вопрос не решен и актуален.
Есть сервер с конфигурацией 8.3 УФ. Все клиенты ходят в вебе, все клиенты за НАТом. Задача - привязать адрес шлюза НАТа к логину пользователя, чтобы пользователь мог заходить в систему только со своего шлюза. Есть несколько пользователей, которым разрешен вход с нескольких IP, и несколько пользователей "без ограничений". Не могу найти метод, способ как получить внешний IP подключенного клиента. Пробовал парсить 2ip.ru, но вызвать методы get html могу только на сервере - соответственно и получаю ip своего сервера. |
|||
1
vde69
29.05.15
✎
16:49
|
1. получаешь IP_Clienta
2. tracetr IP_Clienta 3. парсиш путь |
|||
2
vde69
29.05.15
✎
16:52
|
(0) у тебя ..85.248
|
|||
3
vde69
29.05.15
✎
16:52
|
(2)+ два последних написал :)
|
|||
4
hardsign
29.05.15
✎
16:55
|
(2) 8.3.5.1443
|
|||
5
mTema32
29.05.15
✎
16:56
|
(4) Он тебе не релиз конфы написал, если че)))
|
|||
6
hardsign
29.05.15
✎
16:56
|
(1) tracert можно запустить только интерактивно. любые методы с файловой системой заблокированы для вызова "втихую" - 1С комментировала, что изза соображений безопасности
|
|||
7
mTema32
29.05.15
✎
16:56
|
(5) Ой, платформы то бишь
|
|||
8
vde69
29.05.15
✎
16:56
|
(4) у тебя шлюз 194.50.85.248
тебе ведь именно это нужно? |
|||
9
hardsign
29.05.15
✎
16:57
|
(5) тогда он ошибся. так как *.*.21.94
|
|||
10
vde69
29.05.15
✎
16:57
|
(6) LOL....
если чего курите WMI там все есть... |
|||
11
hardsign
29.05.15
✎
16:58
|
(10) в WMI только ЛОКАЛЬНЫЙ адрес!!!
|
|||
12
vde69
29.05.15
✎
16:58
|
(9) это ТВОЙ IP дальше ты не пролезешь!!!!
|
|||
13
hardsign
29.05.15
✎
16:58
|
(8) у меня другой шлюз:)
|
|||
14
vde69
29.05.15
✎
16:59
|
(11) нет... все работает нормально...
|
|||
15
vde69
29.05.15
✎
17:00
|
(13) значит у шлюза заблокирован ICMP
|
|||
16
hardsign
29.05.15
✎
17:01
|
(1) вот IP клиента меня и интересует - как его получить?:)
|
|||
17
vde69
29.05.15
✎
17:01
|
||||
18
hardsign
29.05.15
✎
17:02
|
(17) все компьютеры в Интернет?:)
1С торчит в Интернет, не в локальной сети! |
|||
19
vde69
29.05.15
✎
17:03
|
(16) IP клиента в параметрах веб сесии, как его в 1с протолкнуть? вероятно сделать ASP скрипт "прокладку" который проверяет IP а только потом дает реальное соеденение
|
|||
20
vde69
29.05.15
✎
17:03
|
(18) там пример как пинговать через WMI, пингуется любой адрес...
|
|||
21
beaver1971
29.05.15
✎
17:58
|
(0) клиенты через вэб? то есть тупо браузером? и ты в страничку любой JS воткнуть можешь? Ну так пусть JS ткнется куда нибудь, типа smart-ip.net/myip и результат тебе отправит.
клиенты то конектятся к тебе как то типа 22.22.22.22:80, покажи им по этому адресу простенький html, который через тот же smart-ip.net/myip узнает клиентский IP и перебросит на адрес типа 22.22.22.22:80/blabla?ip=33.33.33.33 )))) |
|||
22
Сияющий в темноте
31.05.15
✎
08:49
|
Начнём с того что задача однозначного решения просто не имеет
Для компьютера существует только один его внутренний адрес который он прекрасно знает Внешний или другой адрес получается на шлюзе если там включена замена адреса При этом мы ничего не можем узнать о шлюзе вообще То что мы с клиента модем отправить другой запрос на сервер который может из строки определить адрес ещё ничего не значит Если у шлюза есть более одного подставляемого адреса то никто ему не мешает подставить в запрос к другому серверу другой адрес Конечно,можно также отправить запрос на наш сервер и ожидать,что обе будет тот же самый,а можно посмотреть таблицу соединений нашего сервера и пытаться найти наше соединение там Но лучше сделать впн соединение к серверу,чтобы все данные получать из его настроек И нк забываем что весь клиент каждый раз заново подключается |
|||
23
hardsign
02.06.15
✎
11:27
|
(21) норм, хорошее решение. а как потом 1С-кой взять из адресной строки этот адрес?
|
|||
24
xaozai
02.06.15
✎
11:38
|
GET http://myip.ru/
и распарсить |
|||
25
hardsign
02.06.15
✎
11:43
|
(24) Вы видимо не прочитали ответы.
1. Get недоступен в клиенте 1С. 2. Можно сделать get "прослойкой" к примеру на java, и после того как распарсил - запустить 1С со строкой 22.22.22.22:80/blabla?ip=33.33.33.33 3. мой вопрос - как из адресной строки достать в переменную 1С этот самый 33.33.33.33 |
|||
26
xaozai
02.06.15
✎
11:53
|
(25) 1. Можно использовать WinHttpRequest...
|
|||
27
UFO
02.06.15
✎
12:00
|
HTTPЗапрос (HTTPRequest)
HTTPЗапрос (HTTPRequest) Свойства: АдресРесурса (ResourceAddress) Заголовки (Headers) Методы: ПолучитьИмяФайлаТела (GetBodyFileName) ПолучитьТелоКакДвоичныеДанные (GetBodyAsBinary) ПолучитьТелоКакСтроку (GetBodyAsString) УстановитьИмяФайлаТела (SetBodyFileName) УстановитьТелоИзДвоичныхДанных (SetBodyFromBinary) УстановитьТелоИзСтроки (SetBodyFromString) Конструкторы: По адресу ресурса и заголовкам Формирование неинициализированного объекта Описание: Предназначен для описания HTTP-запросов, отправляемых через объект HTTPСоединение. Позволяет задать адрес запрашиваемого ресурса, заголовки и тело запроса. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Методическая информация HTTPОтвет (HTTPResponse) HTTPОтвет (HTTPResponse) Свойства: Заголовки (Headers) КодСостояния (StatusCode) Методы: ПолучитьИмяФайлаТела (GetBodyFileName) ПолучитьТелоКакДвоичныеДанные (GetBodyAsBinaryData) ПолучитьТелоКакСтроку (GetBodyAsString) Описание: Предоставляет доступ к содержимому ответа HTTP-сервера на запрос. Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). -------------------------------------------------------------------------------- Методическая информация |
|||
28
hardsign
02.06.15
✎
12:03
|
(27) да, но там видимо ошибка в описании - так как класс
HTTPСоединение (HTTPConnection) Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). |
|||
29
UFO
02.06.15
✎
12:03
|
А не.. эти не прокатят, они для получения файлов, нужен объект ИнтернетСоединение
|
|||
30
hardsign
02.06.15
✎
12:04
|
(29) Доступность:
Тонкий клиент, сервер, толстый клиент, внешнее соединение. |
|||
31
UFO
02.06.15
✎
12:05
|
Ну веб клиент и есть типа тонкий клиент, или я чего то не понимаю?
|
|||
32
hardsign
02.06.15
✎
12:06
|
(31) нет, это разные клиенты. Веб - это обычным браузером
|
|||
33
UFO
02.06.15
✎
12:07
|
ну я в курсе что браузером.. только я не вижу нигде указания что это именно для веб клиента
|
|||
34
UFO
02.06.15
✎
12:08
|
Или это мобильное приложение (клиент)?
|
|||
35
hardsign
02.06.15
✎
12:09
|
(33) как пример
Строка (String) Описание: Значения данного типа содержат строку в формате Unicode произвольной длины. Литералы: Литералы строкового типа представляют собой набор символов заключенных в кавычки. Для задания в строке символа " (кавычка) необходимо записать две кавычки подряд. Кроме того, допускаются "многострочные" строковые константы. В исходном тексте многострочные константы могут задаваться двумя способами: Между фрагментами, представляющими отдельные строки многострочной строки, не должно встречаться никаких символов, за исключением пробелов, переводов строки и строк комментариев. Каждая отдельная составляющая не замыкается кавычками, а на каждой последующей строке помещен символ переноса строки | (вертикальная черта). В этом варианте комментарии допускаются, если строка начинается с символа комментария //. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер). Возможен обмен с сервером. Сериализуется. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://www.w3.org/2001/XMLSchema}. Имя типа XDTO: может быть любым из перечисленных: string, anySimpleType, anyURI, duration, gDay, gMonth, gMonthDay, gYear, gYearMonth, NOTATION. |
|||
36
UFO
02.06.15
✎
12:11
|
Я думаю тебе нужны объекты из раздела Работа с HTTP, там с мобильным клиентом эти объекты работают
|
|||
37
UFO
02.06.15
✎
12:12
|
Писец.. второй раз я на этот объект натыкаюсь..тот что для работы с файлами
|
|||
38
hardsign
02.06.15
✎
12:13
|
(36) в вебе - нет. Натыкался на комментарий 1С, что выполнение нттр запросов на веб-клиенте заблокировано по соображениям безопасности (типа можно на сайте в 1С редирект воткнуть и вирус скачать втихую)
|
|||
39
UFO
02.06.15
✎
12:14
|
Хех.. не нашел ничего, (38) Скорей всего.. тады другой способ придется тебе изобретать
|
|||
40
UFO
02.06.15
✎
12:16
|
Просто странно, могли бы (1С) добавить функции или объекты для установления сетевого соединения...
|
|||
41
ДенисЧ
02.06.15
✎
12:18
|
(40) тебе же сказали - по соображениям безопасности
|
|||
42
UFO
02.06.15
✎
12:23
|
(41) Обычное сетевое соединение никакой безопасности не нарушает, и вирус в таком случае получить невозможно
|
|||
43
UFO
02.06.15
✎
12:24
|
Это понятно тем кто писал или пишет на Си
|
|||
44
UFO
02.06.15
✎
12:27
|
Вот объекты 1С для работы с НТТР запросто могут накачать, потому что парсят с помощью механизмов 1С и стандартны, поэтому легко получить IFRAME с вирусом. А простой коннект ничем не помешает.
|
|||
45
vde69
02.06.15
✎
13:52
|
простой вопрос:
что нужно автору если подключение идет по IPV6 а не IPV4 ???? |
|||
46
hardsign
02.06.15
✎
15:27
|
(45) зачем по IPV6? и с чего Вы это взяли? ipv6 вообще на сервере отключен.
зы. тут посетила мысль - а если сделать это через веб-сервисы? |
|||
47
Сияющий в темноте
02.06.15
✎
16:24
|
Соображения безопасности при работе с фреймами через разные домены предполагают,что простой доступ к содержимому,полученному с другого домена,позволит злоумышленниками воровать данные пользователей и выполнять от их имени операции
Но если в заголовке http-ответа указать для каких доменов доступно содержимое,то блокировки не будет |
|||
48
Serginio1
02.06.15
✎
18:43
|
А чере COM никак?
v8: v8: Использование сборок .NET в 1С 7.x и 8.x |
|||
49
Записьдампа
02.06.15
✎
21:37
|
(0) Не надо получать ip уже подключенного клиента. Надо делать свою страницу авторизации и пропускать дальше, только если комбинация IP + логин допустима. Принцип можно увидеть в широко известной брошюре "Руководство администратора", глава 4, раздел 4.2.4.2.- Аутентификация с помощью POST-запроса - http://its.1c.ru/db/v8doc#content:16:1:issogl3_4.2.4.2.аутентификацияспомощьюpost-запроса
Список пользователей, по-моему, можно попробовать получить запросом к урлу типа /{название базы}/ru_RU/e1cib/users$ Хотя это надо уточнить. |
|||
50
Записьдампа
02.06.15
✎
21:41
|
Или подумать в направлении провайдера openid с выставлением и анализом какого нибудь X-Forwarded-For
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |