Java Verifique rapidamente a conexão de rede

Meu problema é bastante direto. Meu programa requer notificação imediata se uma conexão de rede for perdida. Estou usando o Java 5, por isso não consigo usar os recursos muito úteis de NetworkInterface.

tualmente, tenho dois métodos diferentes de verificação de conexão de red
(tentativas .. capturas removidas)

Method One:

URL url = new URL("http://www.google.com");
HttpURLConnection urlConnect = (HttpURLConnection) url.openConnection();
// trying to retrieve data from the source. If offline, this line will fail:
Object objData = urlConnect.getContent();
return true;

Method 2:

Socket socket = new Socket("www.google.com", 80);
netAccess = socket.isConnected();
socket.close();
return netAccess;

No entanto, esses dois métodos bloqueiam até que um tempo limite seja atingido antes de retornar falso. Preciso de um método que retorne imediatamente, mas seja compatível com o Java 5.

Obrigado

EDIT: esqueci de mencionar que meu programa depende de endereços IP, não de nomes DNS. Portanto, verifique se há um erro ao resolver um host ...

2ª EDIÇÃO:

Figurou uma solução final usando NetworkInterface:

Enumeration<NetworkInterface> eni = NetworkInterface.getNetworkInterfaces();
        while(eni.hasMoreElements()) {
            Enumeration<InetAddress> eia = eni.nextElement().getInetAddresses();
            while(eia.hasMoreElements()) {
                InetAddress ia = eia.nextElement();
                if (!ia.isAnyLocalAddress() && !ia.isLoopbackAddress() && !ia.isSiteLocalAddress()) {
                    if (!ia.getHostName().equals(ia.getHostAddress()))
                        return true;
                }
            }
        }

questionAnswers(4)

yourAnswerToTheQuestion