Добрый день Java: поиск адреса службы, которая принадлежит определенному сетевому интерфейсу

Я пытаюсь найти адрес, который соответствует разрешенному сервису Bonjour, зарегистрированному для определенного сетевого интерфейса.

DNSSD дает мне hostname и индекс сетевого интерфейса службы: ifIndex, Если хост имеет несколько сетевых интерфейсов, я должен выяснить, какой из сетевых интерфейсов принадлежит ifIndex что этот сервис зарегистрирован (при условии, что сервис ifIndex не 0 или -1).

public void serviceResolved(DNSSDService resolver, int flags, int ifIndex, String fullName, String hostName, int port, TXTRecord txtRecord) {
    InetAddress[] addresses = null;
    try {
        addresses = InetAddress.getAllByName(hostName);
    } catch (UnknownHostException e) {}

    for (InetAddress address : addresses) {
        //How do I know what the appropriate address is?
    }
}

Кто-нибудь знает, как узнать, какой из ip-адресов разрешен hostname принадлежит разрешенным ifIndex?

Большое спасибо, Маттийс

0 ответов

Другие вопросы по тегам