Již několikrát jsem bojoval s tím, že jsem nebyl schopen rozumě poznat, že adresy "myComputer", "192.168.2.8" patří localhostu. Bylo to, když jsem potřeboval zjistit, že ten s kým komunikuji běží na stejném počítači.
Zdá se, že jsem náhodou konečně narazil na řešení, které se zdá být zatím funkční. Našel jsem ho na stackoverflow http://stackoverflow.com/questions/2406341/how-to-check-if-an-ip-address-is-the-local-host-on-a-multi-homed-system.
A vypadá takto:
import java.net.*; public class Util { public static boolean isLocalhost(String address) { InetAddress addr = null; try { addr = InetAddress.getByName(address); if (addr.isAnyLocalAddress() || addr.isLoopbackAddress()) { return true; } // Check if the address is defined on any interface try { return NetworkInterface.getByInetAddress(addr) != null; } catch (SocketException e) { return false; } } catch (UnknownHostException e) { return false; } } }
Žádné komentáře:
Okomentovat