Heim > Java > javaLernprogramm > Wie erhält man in Java zuverlässig die richtige IP-Adresse für verteilte Systeme?

Wie erhält man in Java zuverlässig die richtige IP-Adresse für verteilte Systeme?

Patricia Arquette
Freigeben: 2024-12-14 04:17:09
Original
888 Leute haben es durchsucht

How to Reliably Get the Correct IP Address in Java for Distributed Systems?

Abrufen der IP-Adresse der aktuellen Maschine mit Java

Bei der Entwicklung eines verteilten Systems mit mehreren Knoten, die auf verschiedenen Systemen oder Ports laufen, ist es wird entscheidend, um die IP-Adresse des lokalen Computers zu erhalten. Allerdings kann die Verwendung von Inet4Address.getLocalHost().getHostAddress() oder InetAddress.getLocalHost().getHostAddress() aufgrund mehrerer Netzwerkschnittstellen und IP-Adressen, die jeder Schnittstelle zugeordnet sind, die falsche IP-Adresse zurückgeben.

Überlegungen zur Auswahl der IP-Adresse

In diesem Szenario muss der Knoten seine IP-Adresse bei einem Bootstrapping-Knoten registrieren. Die Auswahl der IP-Adresse sollte den folgenden Prioritäten entsprechen:

  1. Priorisieren Sie die PPP-IP-Adresse, falls verfügbar.
  2. Wenn PPP nicht verfügbar ist, verwenden Sie die LAN-IP-Adresse.
  3. Registrieren Sie als Fallback 127.0.0.1, wenn davon ausgegangen wird, dass sich der Knoten auf demselben Knoten befindet Computer.

Verwenden von Netzwerkschnittstellen

Die Methode NetworkInterface.getNetworkInterfaces() stellt eine umfassende Liste von Netzwerkschnittstellen auf dem lokalen Computer bereit. Jede Netzwerkschnittstelle kann mehrere IP-Adressen haben. Um alle IP-Adressen zu erhalten, durchlaufen Sie die Netzwerkschnittstellen und die zugehörigen IP-Adressen mit dem folgenden Code:

Enumeration e = NetworkInterface.getNetworkInterfaces();
while (e.hasMoreElements()) {
    NetworkInterface n = (NetworkInterface) e.nextElement();
    Enumeration ee = n.getInetAddresses();
    while (ee.hasMoreElements()) {
        InetAddress i = (InetAddress) ee.nextElement();
        System.out.println(i.getHostAddress());
    }
}
Nach dem Login kopieren

Unterscheiden von IP-Adressen

Sobald Sie die Liste haben Bei IP-Adressen ist es wichtig, zwischen verschiedenen IP-Typen zu unterscheiden Adressen:

  • Loopback: 127.xxx.xxx.xxx
  • Privat (Site Local): 192.168.xxx.xxx, 10.xxx.xxx.xxx, 172.16.xxx.xxx bis 172.31.xxx.xxx
  • Lokal verknüpfen: 169.254.xxx.xxx
  • Multicast: 224.xxx.xxx.xxx an 239.xxx.xxx.xxx
  • Broadcast: 255.255.255.255
  • Öffentlicher Punkt-zu-Punkt:Alles außerhalb der oben genannten Bereiche

Sie können die InetAddress-API zur Überprüfung verwenden spezifische IP-Adresstypen gemäß Ihren Auswahlprioritäten.

Fazit

Durch die Verwendung der NetworkInterface-API und die Berücksichtigung von IP-Adresstypen können Sie effektiv die richtige IP-Adresse Ihres Unternehmens erhalten Knoten und registrieren Sie ihn beim Bootstrapping-Knoten, um eine ordnungsgemäße Kommunikation innerhalb des verteilten Systems sicherzustellen.

Das obige ist der detaillierte Inhalt vonWie erhält man in Java zuverlässig die richtige IP-Adresse für verteilte Systeme?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage