So lösen Sie einen Bonjour-Domänennamen mit JmDNS

8

Als Teil einer App, die ich entwickle, muss ich in der Lage sein, die richtige IP zu finden, die einem Bonjour Hostnamen entspricht .

Zum Beispiel habe ich jack.local und muss es in 192.168.1.141 auflösen, das ist die IP-Adresse, die jack zugeordnet ist.

Ich habe die JmDNS-APIs durchgekämmt, und die meisten, die ich finden kann, sind Methoden, die es ermöglichen, einen Dienst aufzulösen, wenn der Typ und der Name bekannt sind. Ich kann jedoch nichts finden, was die Auflösung eines Hostnamens erlauben würde.

Also vermisse ich etwas? Gibt es wirklich keine Möglichkeit, einen Hostnamen mit JmDNS aufzulösen?

    
Jake 17.01.2013, 05:35
quelle

2 Antworten

0

Wenn Sie den Remote-Hostnamen im LAN von der IP-Adresse mithilfe von JmDNS herausfinden müssen, können Sie den folgenden Code verwenden. Wenn Sie eine Zuordnung von Hostname zu IP vornehmen müssen, können Sie Hostnamen für alle Ihre Subnetz-IPs auflösen, um einen Cache zu erstellen. Wenn Ihre native Namensauflösung lokale Bonjour-Namen unterstützt, können Sie einfach InetAddress.getByName (Hostname) .getHostAddress () verwenden.

%Vor%     
user3161031 18.01.2015 19:58
quelle
-1

Mit jmdns hören Sie Dienste an. Zum Abonnieren verwenden Sie die Funktionen

%Vor%

Sobald jmdns einen Dienst findet, wird ServiceListener benachrichtigt. Der Listener hat drei öffentliche Funktionen:

%Vor%

mit jedem bekommt man ServiceEvent . Rufen Sie jetzt event.getInfo().getHostAddresses() auf, um ein Array aller Adressen des Hosts zu erhalten.

Wenn Sie den Service auflösen möchten, müssen Sie

anrufen %Vor%

in der serviceAdded-Methode.

Sehen Sie sich dazu Quick Tutorial

an     
RaphMclee 24.01.2013 13:02
quelle

Tags und Links