Lokale IP mit Java ermitteln: Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
(Die Seite wurde neu angelegt: „Kategorie:Java-Codeschnipsel Bei diesem Code-Schnipsel handelt es sich um einen Workaround. Er funktioniert aber unter Windows, sowie unter allen Linux-Dis…“)
 
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:
 
Bei diesem Code-Schnipsel handelt es sich um einen Workaround. Er funktioniert aber unter Windows, sowie unter allen Linux-Distributionen.
 
Bei diesem Code-Schnipsel handelt es sich um einen Workaround. Er funktioniert aber unter Windows, sowie unter allen Linux-Distributionen.
  
<
+
<syntaxhighlight lang="java">
 
import java.net.DatagramSocket;
 
import java.net.DatagramSocket;
 
import java.net.InetAddress;
 
import java.net.InetAddress;
  
 
/**
 
/**
  * Diese Methode gibt die lokale IP-Adresse zurück, die zum Herstellen einer Verbindung mit einem Remote-Rechner verwendet wird.  
+
  * Diese Methode gibt die lokale IP-Adresse zurück, die zum Herstellen einer Verbindung
  * Es wird keine echte Verbindung hergestellt, daher kann die angegebene IP auch auf Grund von Restriktionen nicht benutzbar sein.
+
* mit einem Remote-Rechner verwendet wird.  
 +
  * Es wird keine echte Verbindung hergestellt, daher kann die angegebene IP auch auf  
 +
* Grund von Restriktionen nicht benutzbar sein.
 +
*
 
  * @return Gibt die ermittelte lokale IP-Adresse zurück.
 
  * @return Gibt die ermittelte lokale IP-Adresse zurück.
 
  */
 
  */
Zeile 21: Zeile 24:
 
   return ip;
 
   return ip;
 
}
 
}
 +
</syntaxhighlight>
 +
 +
*[https://stackoverflow.com/questions/9481865/getting-the-ip-address-of-the-current-machine-using-java Link zum Original-Beitrag]

Aktuelle Version vom 25. Juni 2020, 09:47 Uhr

Bei diesem Code-Schnipsel handelt es sich um einen Workaround. Er funktioniert aber unter Windows, sowie unter allen Linux-Distributionen.

import java.net.DatagramSocket;
import java.net.InetAddress;

/**
 * Diese Methode gibt die lokale IP-Adresse zurück, die zum Herstellen einer Verbindung
 * mit einem Remote-Rechner verwendet wird. 
 * Es wird keine echte Verbindung hergestellt, daher kann die angegebene IP auch auf 
 * Grund von Restriktionen nicht benutzbar sein.
 *
 * @return Gibt die ermittelte lokale IP-Adresse zurück.
 */
public String getPreferredLocalIPAddress() {
   String ip = "127.0.0.1";
   try (final DatagramSocket socket = new DatagramSocket()) {
      socket.connect(InetAddress.getByName("8.8.8.8"), 10002);
      ip = socket.getLocalAddress().getHostAddress();
   } catch (SocketException | UnknownHostException ex) {
      System.out.println(ex);
   }
   return ip;
}