Привет всем!
Вопрос такой...
Дело в том, что то о чем тема это можно сделать разными путями.
Вот несколько способов которую вызывает тестовая функция:
Функция Получить_IP() Экспорт
// ========= Способ 1
//Возврат winmgmts_Получить_IP();
// ========== Способ 2
Возврат IP_Получить_MACAddress();
// ========== Способ 3 == Определение ip через веб сервис
//Возврат IP_ПолучитьОтВебСервиса();
КонецФункции
&НаКлиенте
Функция winmgmts_Получить_IP() Экспорт
//Определение ip адреса через "winmgmts"
COMОбъект = ПолучитьCOMОбъект("winmgmts:\\.\root\CIMV2");
Результат = COMОбъект.ExecQuery("SELECT * FROM
|Win32_NetworkAdapterConfiguration
|WHERE IPEnabled = TRUE");
Для каждого Строка Из Результат Цикл
Для каждого ПодСтрока Из Строка.IPAddress Цикл
Возврат ПодСтрока;
КонецЦикла;
КонецЦикла;
КонецФункции
&НаКлиенте
Функция IP_Получить_MACAddress() Экспорт
ServicesSet = GetComObject("winmgmts:{impersonationLevel=impersonate}!\\" + СокрЛП(".") + "\root\cimv2");
Items = ServicesSet.ExecQuery("SELECT MACAddress FROM Win32_NetworkAdapter WHERE NetConnectionStatus=2");
Для каждого Item Из Items Цикл
Если СокрЛП(Item["MACAddress"]) <> "" Тогда
Mac = СокрЛП(Item["MACAddress"]);
Прервать;
КонецЕсли;
КонецЦикла;
Items = ServicesSet.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress='" + Mac + "'");
Для Каждого objItem Из Items Цикл
Если ТипЗнч(objItem.IPAddress) = Тип("COMSafeArray") Тогда
Для Каждого Элем Из objItem.IPAddress Цикл
IP = Элем;
Прервать;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Возврат IP;
КонецФункции
&НаСервере
Функция IP_ПолучитьОтВебСервиса() Экспорт
Описание= Новый WSОпределения("http://develplatform.ru/SynIP.asmx?wsdl");
Прокси = Новый WSПрокси(Описание, "http://www.develplatform.com/", "SynIP", "SynIPSoap");
Тип = Прокси.ФабрикаXDTO.Пакеты.Получить("http://www.develplatform.com/").Получить("GetClientIP");
ФабрикаВебСервис = Прокси.ФабрикаXDTO.Создать(Тип);
Возврат Прокси.GetClientIP(ФабрикаВебСервис).GetClientIPResult;
КонецФункции
Первые способы дают локальный айпи клиента.
Последний - внешний айпи сервера (и, видимо, пользователю сервера 1с доступ туда прикрыт).
Petre @ Сегодня, 14:44
,
Да ... думаю так...
Но ладно... тогда вопрос в другом стиле. Тем более что мне нужно получить не айпи сервера, а локальной машины.
и как говорил все работает и не нужно через веб сервис, но работает только для тонкого, а веб клиент сом-объект че то не терпит.
И та форма где есть вызов первой или второй функции вовсе не открывается и выдает ошибку.
Поэтому вопрос в том, как получить АйПи локальной машины клиента и так что бы это РАБОТАЛО И ДЛЯ ВЕБ-КЛИЕНТА.
Вот в чем вопрос.
Если не трудно... буду признателен!
Gigi @ Сегодня, 14:55
,
Ответа нет ... видимо с этим опять гем.
Короче ... в таком случае вынужден сделать так..
Функция Получить_IP() Экспорт
Попытка Возврат winmgmts_Получить_IP() Исключение Возврат Неопределено КонецПопытки;
КонецФункции
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua