pátek 3. srpna 2012

Java - Jak poznat, že adresa je localhost

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