Определение Ipшника

Тема в разделе "Lotus - Программирование", создана пользователем alik86, 26 фев 2010.

  1. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Доброго времени, дамы и господа!
    Нужна возможность определить IP компа (кнопка на форме, которая при нажатии выдаст пользователю msgbox с IP компьютера за которым он сидит).
    Можно ли это сделать, и если это можно, то как?
    P.S. Желательно обойтись малой кровью: LS или @... :)
     
  2. Klido

    Klido Гость

    с полгода назад аналогичная тема была...
    принципиально - подключить виндовое API и взять всё что угодно от компа :)
    в инете (sandbox, openntf) есть полно примеров - класс вроде зовут SysInfo

    Добавлено: например тут
    http://www-10.lotus.com/ldd/46dom.nsf/Sear...81?OpenDocument
     
  3. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Понятно.
    Спасибо, буду курить... :)
     
  4. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    выполник команду на клиенте: ipconfig и спи спокойно :)
     
  5. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Да я бы выполнил, но это не моя хотелка... :)
     
  6. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    alik86
    так ты скриптом её и выполни на вход в базу, постопен или кнопу, в общем в нужном месте
     
  7. azat20

    azat20 Well-Known Member

    Регистрация:
    22 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    Код (Text):
    Set WSHNetwork = CreateObject("WScript.Network")
    strDomain = WSHNetwork.UserDomain
    strUserName = WSHNetwork.UserName
    strComputerName = WSHNetwork.ComputerName
    Set IPConfigSet =GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select IPAddress from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
    Forall IPConfig In IPConfigSet
    If Not Isnull(IPConfig.IPAddress) Then
    For i=Lbound(IPConfig.IPAddress) To Ubound(IPConfig.IPAddress)
    If strIPAddress = "" Then
    strIPAddress = IPConfig.IPAddress(i)
    Else
    strIPAddress = strIPAddress & ", " & IPConfig.IPAddress(i)
    End If
    Next
    End If
    End Forall
    doc.whouch=strUserName
    doc.whodom=strDomain
    doc.whocomp=strComputername
    doc.whoip=strIPAddress
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
  9. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Извиняюсь за беспокойство, уже все нашел, причем тут же ;)
    Пока сделал через WSH, вроде работает...

    Оо Ояе... всмысле не представляю как это сделать... Как это?

    Всем спасибо за предоставленную почву для размышлений - начинаю исследование остальных вариантов (глядишь и мозгов прибавится ;))
    P.S. Малой кровью обойтись таки не удалось... Ну ничего, мне полезно...
     
  10. azat20

    azat20 Well-Known Member

    Регистрация:
    22 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    тебе нужен только IP?
    тогда создай кнопку,и закинь туда код:
    Код (Text):
    dim WSHNetwork as Variant
    dim IPConfigSet as Variant
    dim strIPAddress as String
    Set WSHNetwork = CreateObject("WScript.Network")
    Set IPConfigSet =GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select IPAddress from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
    Forall IPConfig In IPConfigSet
    If Not Isnull(IPConfig.IPAddress) Then
    For i=Lbound(IPConfig.IPAddress) To Ubound(IPConfig.IPAddress)
    If strIPAddress = "" Then
    strIPAddress = IPConfig.IPAddress(i)
    Else
    strIPAddress = strIPAddress & ", " & IPConfig.IPAddress(i)
    End If
    Next
    End If
    End Forall
    Print(strIPAddress)
     
  11. alik86

    alik86 Lotus team
    Lotus team

    Регистрация:
    20 ноя 2008
    Сообщения:
    465
    Симпатии:
    0
    Azat Так я почти так и сделал... ;)
     
  12. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    lmike
    никто не хочет тебя слушать...
    а я вот сам только что попытался на яве черел LS2J мост сваять ;)
    две минуты и адрес готов, без знания жавы ;)
    потом начал переделывать и застрял на элементарном ))
    как byte в char перегнать? т.е. как 56 преобразовать в "56"? и не могу нарыть нормальный легкий пример... или это не так легко? )
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    народ проявляет странную упертость и готов на любые костыли ;), даже имея под рукой мощный и достаточно удобный бридж...
    по вопросу - всё элементарно ;)
    во-первых - это не char, а строка (то что у тя написано)
    во-вторых - есть классы, а не простые типы...
    byte и Byte
    int и Integer
    long и Long
    и т.п.
    конструктор и далее toString()
    Код (Text):
    byte b=56;
    System.out.println( (new Byte(b)).toString());
    первоисточник
    http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Byte.html
    http://java.sun.com/j2se/1.4.2/docs/api/ja...ang/Number.html

    на будущее
    http://java.sun.com/j2se/1.4.2/docs/api/ja...ang/String.html
    там конструкторы из чё хош, в том числе - с указанием кодировки

    для контектации строк - StringBuffer - скорость и экономия памяти, а то есть любители обвинить java в медлительности ;) (а часто - корявый код)
     
  14. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    может, в отдельную тему - ликбез по java ;) ? "мелкие вопросы" по java... а вообще - спб за инфу.
     
  15. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    насчет медлительности - любители однозначно правы. без доработки продукта напильником работает ужасающе медленно.
    До r8 в ln по дефолту отключен just-in-time compiler. В результате код, запущенный в клиенте выполняется в несколько ( по ощущениям - в пять(!!!) ) раз медленней, чем тот же код, запущенный напрямую: %lotushome%/jvm/bin/java.exe имя_класса.
    Включение JIT ( производица вручную в notes.ini JavaEnableJIT=1 на страх и риск включающего ) в корне меняет скорость работы.
    Радость омрачает только заявление IBM об отказе от отвественности: http://www.ibm.com/developerworks/lotus/li...bles/index.html
    Caution: JIT functionality can be unstable and lead to unexpected crashes.
    С другой стороны, переход на восьмерку решает все проблемы с производительностью java - кода, а появление xpages - это вообще бомба, которую многие еще не оценили.
    http://www.wissel.net/blog/d6plinks/SHWL-7MGFBN - сулит полный отказ от использования агентов, ( появление кэша уровня приложения - сохранение состояний между вызовами ).
     
  16. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    я ваще не юзаю 8-ку на клиенте (а на серверах тока думаю), и скорее всего не буду юзать...
    либо допилят до нормального состояния, либо нотус умрёт ;)
    8-ка, в тек. виде - просто неприемлимо, хуже релизов я ещё не видел
    я грю про java как платформу, а не то - что с ней ИБМ сделало

    последнее время оно (ИБМ) мне тока и "омрачает радость"
     
  17. Klido

    Klido Гость

    basic клиент - достаточно норм. про эклипсовый на клиенте - тут да, страшно представить, как оно там жить будет :)
     
Загрузка...

Поделиться этой страницей