2 июня 2010 г.

Получить все локальные IP

Встала задача получить на клиенте все локальные IP.
WinAPI, WHS - примеры были, но как-то не "кошерно"...
Java!... Порывшись в инете по примерам, в итоге сделал (собрал) функцию, которая получает все локальные IP. Функция на LS через LS2J....
Вот пример как это сделать:

Uselsx "*javacon"

Sub Initialize
    Dim jSession As JavaSession
    Dim jClass As JavaClass
    Dim jObject As JavaObject
    Dim jObjHost As JavaObject
    Dim jError As JavaError
    Dim ArrObj As Variant

    Dim host As String
   
    On Error Goto errorHandler
   
    Set jSession = New JavaSession()
    Set jClass = jSession.GetClass("java/net/InetAddress")
    Set jObject = jClass.CreateObject
   
    host = jObject.getLocalHost().getHostName()



    'закомментировано только для одного IP
    'Если только первый и единственный, но не всегда на машине он один...
    'Set jObjHost = jObject.getByName(host)
    'IPAddress$ = jObjHost.getHostAddress()
    'Msgbox IPAddress$
   
    ArrObj = jObject.getAllByName(host)
    For i%=0 To Ubound(ArrObj)
        Set jObjHost = ArrObj(i%)
        Msgbox host+" - " + jObjHost.getHostAddress()
    Next
    Exit Sub
errorHandler:
    Set jError = jSession.getLastJavaError()
    Messagebox jError.StackTrace,, Error
    Exit Sub
End Sub


Заметьте, что ни каких java-библиотек в лотусах создавать не надо, всё что надо здесь, в одном месте... :)

Комментариев нет:

Отправить комментарий