Всем привет.
Возникла необходимость получать айпишник локальной машины, которая подключена к 1С через терминалку. Перелопатил весь инфостарт и мисту. Большинство компонент и vbs-скриптов получают IP сервера, а не подключенного компьютера. Самый популярный КОМ SendToLocalHost.dll отказывается регистрироваться в системе - как я только не изголялся. Натолкните на путь истинный.
---
https://infostart.ru/public/506881/#com0

Вот этот метод у меня работает. Бинго!
---
Добрый день. Смотрели здесь ?
http://www.forum.mista.ru/topic.php?id=481072
---
Да, смотрел. Не могу проверить работоспособность потому что эта аццкая dll не хочет регистрироваться ни на локальной машине, ни на сервере. Пробовал и так и сяк, и от имени администратора, и через cmd и через выполнить. Нифига. А если не зарегить, вылетает с ошибкой.

{Отчет.ОтчетЗемНалог.Форма.ФормаОтчета.Форма(78)}: Ошибка при вызове конструктора (COMОбъект)
 ComObject = Новый COMОбъект("SendToLocalHost.SendToLocalHost");
по причине:
Недопустимая строка с указанием класса
---
Скачал здесь RegAsm и спокойно зарегистрировал
https://mobi-c.ru/wiki/doku.php/sovety/registracija_biblioteki_route_iz_komandnoj_stroki­
---
Вот скрин
---
Спасибо, зарегистрировал. Теперь вылетает с немного иной ошибкой

{Отчет.ОтчетЗемНалог.Форма.ФормаОтчета.Форма(78)}: Ошибка при вызове конструктора (COMОбъект)
 ComObject = Новый COMОбъект("SendToLocalHost.SendToLocalHost");
по причине:
Класс не зарегистрирован

Печаль беда.
---
Регистрация была на сервере ? И у вас только идет создание СОМ объекта ,а класс ?
Можно больше листинга подключения
---
Кстати сервер x64 ?
Может еще это поможет http://www.steeltrace.ru/details/articleid/22/%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82­%D1%80%D0%B0%D1%86%D0%B8%D1%8F-1%D1%81-com-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%B0­-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-64-%D0%B1%D0%B8%D1%82%D0%BD%D1%8B%D0%BC%D0%B8-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F­%D0%BC%D0%B8.aspx
---
регистрация была на сервере, да, он х64 (2003)

А листинг...

ComObject = Новый COMОбъект("SendToLocalHost.SendToLocalHost");
МойIP = ComObject.GetIPLocalHost();
Сообщить(МойIP);

Может просто листинг косячный?

О, попробовал через службы - вроде зарегистрировал, теперь:

{Отчет.ОтчетЗемНалог.Форма.ФормаОтчета.Форма(78)}: Ошибка при вызове конструктора (COMОбъект)
 ComObject = Новый COMОбъект("SendToLocalHost.SendToLocalHost");
по причине:
Не удается найти указанный файл.

У меня такое ощущение, что файл компоненты битый..
---
Бывает так ,что библиотека вроде зарегистрирована , как с 1С но не работает , и проходиться ее руками регистрировать. Как в описании выше.
Может стоит тоже также сделать создать СОМ объект по имени SendToLocalHost
---
У меня на сервере не получилось руками ее зарегистрировать
---
Надо ее препарировать, посмотреть что внутри ее.
---
понятно, буду думать... спасибо за помощь
---
WTS = Новый COMОбъект("WTSManager.Shell")
Сообщить "My computer name: " + WTS.MyClientName + " " + "My IP address: " + WTS.MyIPAddress
Сессия = "Total sessions: " & WTS.ClientCount
Для каждого i = 1 из WTS.ClientCount Цикл
 S = S + Chr(13) + WTS.Clients(i).WinStationName + " User: " + WTS.Clients(i).UserName + " IP: " + WTS.Clients(i).IPAddress
КонецЦикла

Думаю такой перевод для 1С будет
---
Сессия = Сессия + Chr(13) + WTS.Clients(i).WinStationName + " User: " + WTS.Clients(i).UserName + " IP: " + WTS.Clients(i).IPAddress
---
а если через https://infostart.ru/public/119982/
---
попробую, надо почитать и разобраться
---
В общем, компонента работает, но как ей пользоваться я не догнал, а именно как ее применить чтобы получить ИП подключаемого клиента...
---
А если в отладчике посмотреть какие функции вызывает данная библиотека .
---
посмотрел, возвращает только адрес сервера и имя учетки, по которой подключается пользователь на терминалку.
---
А в самом СОМ объекте какие есть функции ?
---
Есть у вас тим вивер ?
---
там в теме ответили что она не предназначена для моих нужд) попробую это
https://infostart.ru/public/506881/

тимвивер есть, но пока неудобно
---
По описанию вроде то ,что вам нужно .
---
завтра будут стартмани, попробую отпишусь если интересно
---
https://www.experts-exchange.com/questions/24196224/Script-to-map-drives-using-ip-address.html Смотри вот вроде решение файлик скачай wtsclient.zip
---
Пример как будет выглядеть
WTS = Новый COMОбъект("WTSManager.Shell")
Сообщить "My computer name: " + WTS.MyClientName + " " + "My IP address: " + WTS.MyIPAddress
Там в архиве есть русское описание команд
---
Странно, ругается на параметры в WTS. Что MyClientName, что MyIPAddress. даже если взять команду как в файле - ClientIp все равно пишет что объект не найден...
---
WTS. Что MyClientName, что MyIPAddress это функции их нужно в скобки брать
---
Так а где тогда описание этих функций?)
---
Вот смотри , все ваше

https://infostart.ru/public/165702/
---
https://infostart.ru/public/506881/#com0

Вот этот метод у меня работает. Бинго!
---
Такой метод вспоминался?

```1c
    Попытка
    WshShell = Новый COMОбъект("WScript.Shell");
    ИмяКлиента = WshShell.ExpandEnvironmentStrings("%ClientName%");
    Если ИмяКлиента = "%ClientName%" Тогда
    ИмяКлиента = ИмяКомпьютера();
    КонецЕсли;
    НайденноеЗначение = ИмяКлиента;

    Исключение
    КонецПопытки;
```
---
Ой, sorry, тут получается имя клиента. Проглядел что нужен IP.
---
пытался использовать и этот, возвращал адрес сервера
---
Здравия!
Не сочтите за рекламу: https://infostart.ru/public/726435/
Это для 1С 7.7