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