Не определяется IP на клиенте Linux

Desten

Active member
18.10.2016
39
0
BIT
6
Добрый день!
Не определяется IP на клиенте Linux. Возвращается 127.0.0.1
На Windows клиенте все нормально. Что не так?
Код:
Option Public
Option Declare
 
UseLSX "*javacon"
Sub Initialize
    Dim jSession As JavaSession
    Dim jClass As JavaClass
    Dim jObject As JavaObject
    Dim jObjHost As JavaObject
    Dim host As String
    Dim Workspace As New NotesUIWorkspace
    Dim UIDoc As NotesUIDocument
    
    Set jSession = New JavaSession()
    Set jClass = jSession.GetClass("java/net/InetAddress")
    Set jObject = jClass.CreateObject
    Set UIDoc = Workspace.Currentdocument
    
    host = jObject.getLocalHost().getHostName()
    
    'Получение списка сетевых интерфейсов
    Dim interfaces As Variant
    interfaces = jObject.getAllByName (host)
    
    'Устанавливаем значение
    Call uidoc.fieldsettext("IP", "Из другой сети")
    
    'Перебор сетевых интерфейсов
    ForAll interface In interfaces
        Dim IP As String
        'Получение IP-адреса на очередном интерфейсе
        IP = interface.getHostAddress()
        'Сравнивнение первых 3-х символов из IP-адреса
        If Left(IP,3)="10." Then
            Call uidoc.fieldsettext("IP", IP)
        End If
    End ForAll
End Sub
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
Добрый день!
Не определяется IP на клиенте Linux. Возвращается 127.0.0.1
На Windows клиенте все нормально. Что не так?
Код:
Option Public
Option Declare
 
UseLSX "*javacon"
Sub Initialize
    Dim jSession As JavaSession
    Dim jClass As JavaClass
    Dim jObject As JavaObject
    Dim jObjHost As JavaObject
    Dim host As String
    Dim Workspace As New NotesUIWorkspace
    Dim UIDoc As NotesUIDocument
 
    Set jSession = New JavaSession()
    Set jClass = jSession.GetClass("java/net/InetAddress")
    Set jObject = jClass.CreateObject
    Set UIDoc = Workspace.Currentdocument
 
    host = jObject.getLocalHost().getHostName()
 
    'Получение списка сетевых интерфейсов
    Dim interfaces As Variant
    interfaces = jObject.getAllByName (host)
 
    'Устанавливаем значение
    Call uidoc.fieldsettext("IP", "Из другой сети")
 
    'Перебор сетевых интерфейсов
    ForAll interface In interfaces
        Dim IP As String
        'Получение IP-адреса на очередном интерфейсе
        IP = interface.getHostAddress()
        'Сравнивнение первых 3-х символов из IP-адреса
        If Left(IP,3)="10." Then
            Call uidoc.fieldsettext("IP", IP)
        End If
    End ForAll
End Sub
делал перебор на stream API - получались все, деталей не помню, код в аттаче
класс емнип
 

Вложения

  • NetUtils.zip
    2,6 КБ · Просмотры: 94
Последнее редактирование:

savl

Lotus Team
28.10.2011
2 624
314
BIT
517
'Перебор сетевых интерфейсов
ForAll interface In interfaces
Dim IP As String
'Получение IP-адреса на очередном интерфейсе
IP = interface.getHostAddress()
'Сравнивнение первых 3-х символов из IP-адреса
If Left(IP,3)="10." Then
Call uidoc.fieldsettext("IP", IP)
End If
End ForAll
Добавьте вывод IP , мне думается, что там всё есть, просто либо много интерфейсов, либо они не с 10 нчинаются
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
Добавьте вывод IP , мне думается, что там всё есть, просто либо много интерфейсов, либо они не с 10 нчинаются
"этот класс" емнип через опу работает с несколькими интерфейсами, собсно причина моего "творения" в том и заключалась - предсказуемость и управляемость
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 983
611
BIT
453
ещё "вспомнил"
если это не контейнер - хостнэйм терминируется на заглушку (дабы без сети резолвинг не начал козлить)
резолвер бывает локальным...
и имя хоста надо указывать вместе доменом! (FQDN)
короче - надо заглянуть cat /etc/hosts
и указывать FQDN
если на линухах установлена jdk
в бубунте так sudo apt install openjdk-9-jdk-headless

то можно создать простенькую прогу на java
Java:
import java.net.InetAddress;
import java.net.UnknownHostException;

public class GetIpAddress {
    public static void main(String[] args) throws UnknownHostException {

        InetAddress[] inetAddresses=InetAddress.getAllByName(args[0]);

        for (InetAddress ipAddress : inetAddresses)
        {
            System.out.println("different ip " + ipAddress);
        }
    }
}
скомпилить
javac GetIpAddress.java
запустить
java -cp ./ GetIpAddress host.domain.lz
где host.domain.lz - FQDN хоста
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!