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:
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()); } }
Unterscheiden von IP-Adressen
Sobald Sie die Liste haben Bei IP-Adressen ist es wichtig, zwischen verschiedenen IP-Typen zu unterscheiden Adressen:
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!