1С 8.3 Получить IP адрес
Данные > Примеры кода 1С > 1С 8.3 Приложение, система, интерфейс
Перейти в раздел примеры кода 1С 8.3:
Пример №1: программно получить внешний IP адрес в 1С 8.3:
Функция ПолучитьIP_1() Экспорт
// Headers;
Заголовки = Новый Соответствие;
Заголовки.Вставить("Accept", "*/*");
Заголовки.Вставить("Accept-Encoding", "gzip, deflate, br");
Заголовки.Вставить("Connection", "keep-alive");
Заголовки.Вставить("Content-type", "application/json");
ДополнительныеПараметры = Новый Структура("Заголовки", Заголовки);
// HTTP query;
СоединениеHTTP = Новый HTTPСоединение("api.ipify.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
ЗапросHTTP = Новый HTTPЗапрос("/", Заголовки);
ТекстОтвета = СоединениеHTTP.Получить(ЗапросHTTP);
ТекстОтветаJSON = ТекстОтвета.ПолучитьТелоКакСтроку();
Сообщить("IP адрес устройства = "+ ТекстОтветаJSON);
Возврат ТекстОтветаJSON;
КонецФункции
// Headers;
Заголовки = Новый Соответствие;
Заголовки.Вставить("Accept", "*/*");
Заголовки.Вставить("Accept-Encoding", "gzip, deflate, br");
Заголовки.Вставить("Connection", "keep-alive");
Заголовки.Вставить("Content-type", "application/json");
ДополнительныеПараметры = Новый Структура("Заголовки", Заголовки);
// HTTP query;
СоединениеHTTP = Новый HTTPСоединение("api.ipify.org",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
ЗапросHTTP = Новый HTTPЗапрос("/", Заголовки);
ТекстОтвета = СоединениеHTTP.Получить(ЗапросHTTP);
ТекстОтветаJSON = ТекстОтвета.ПолучитьТелоКакСтроку();
Сообщить("IP адрес устройства = "+ ТекстОтветаJSON);
Возврат ТекстОтветаJSON;
КонецФункции
Пример №2: программно получить локальный IP адрес в 1С 8.3:
&НаКлиенте
Процедура ПолучитьIP_2()
COMОбъектWS = Новый COMОбъект("WbemScripting.SWbemLocator");
COMОбъектWS_root = COMОбъектWS.ConnectServer(".","root\CIMV2");
ПулСтрок = COMОбъектWS_root.ExecQuery("SELECT IPAddress FROM
|Win32_NetworkAdapterConfiguration
|WHERE IPEnabled = TRUE");
Для Каждого СтрIP Из ПулСтрок Цикл
Для Каждого IPадрес Из СтрIP.IPAddress Цикл
Сообщить("IP адрес устройства = "+ IPадрес);
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Процедура ПолучитьIP_2()
COMОбъектWS = Новый COMОбъект("WbemScripting.SWbemLocator");
COMОбъектWS_root = COMОбъектWS.ConnectServer(".","root\CIMV2");
ПулСтрок = COMОбъектWS_root.ExecQuery("SELECT IPAddress FROM
|Win32_NetworkAdapterConfiguration
|WHERE IPEnabled = TRUE");
Для Каждого СтрIP Из ПулСтрок Цикл
Для Каждого IPадрес Из СтрIP.IPAddress Цикл
Сообщить("IP адрес устройства = "+ IPадрес);
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Пример №3: программно получить локальный IP адрес в 1С 8.3:
&НаКлиенте
Процедура ПолучитьIP_3()
COMОбъектWin = ПолучитьCOMОбъект("winmgmts:\\.\root\CIMV2");
ПулСтрок = COMОбъектWin.ExecQuery("SELECT * FROM
|Win32_NetworkAdapterConfiguration
|WHERE IPEnabled = TRUE");
Для Каждого СтрIP Из ПулСтрок Цикл
Для Каждого IPадрес Из СтрIP.IPAddress Цикл
Сообщить("IP адрес устройства = "+ IPадрес);
КонецЦикла;
КонецЦикла;
Процедура ПолучитьIP_3()
// Аналогичен примеру №2 (разница лишь в подключении)
COMОбъектWin = ПолучитьCOMОбъект("winmgmts:\\.\root\CIMV2");
ПулСтрок = COMОбъектWin.ExecQuery("SELECT * FROM
|Win32_NetworkAdapterConfiguration
|WHERE IPEnabled = TRUE");
Для Каждого СтрIP Из ПулСтрок Цикл
Для Каждого IPадрес Из СтрIP.IPAddress Цикл
Сообщить("IP адрес устройства = "+ IPадрес);
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Пример №4: программно получить локальный IP адрес (до Windows 7 включительно) в 1С 8.3:
&НаКлиенте
Процедура ПолучитьIP_4()
COMОбъектRS= Новый COMОбъект("rcbdyctl.setting");
IPадрес=COMОбъектRS.GetIpAddress;
Сообщить("IP адрес устройства = "+ IPадрес);
КонецПроцедуры
Процедура ПолучитьIP_4()
COMОбъектRS= Новый COMОбъект("rcbdyctl.setting");
IPадрес=COMОбъектRS.GetIpAddress;
Сообщить("IP адрес устройства = "+ IPадрес);
КонецПроцедуры
2
комментарии
Игорь Анисимов
16 мар 2024
На W7 не проверял. Но на W10 все методы работают отлично (кроме пример 4, конечно)
Дмитрий Шаура
28 окт 2022
1. rcbdyctl.dll - это библиотека из windows xp. В Windows 7 и старше её нет. Поэтому описанный метод не подходит.
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник