"ping" mit isReachable -> immer true

Ashaman

Mitglied
Hallo,

ich bin wirklich am Verrückt werden... suche schon seit Stunden nach einer Lösung.
Vielleicht könnt ihr mir ja auf die Sprünge helfen :)

Also ich möchte eine Reihe von Rechnern anpingen und will nur wissen, ob diese Online sind bzw Offline.
Das Ganze soll möglichst schnell und effizient gehen.
Ich nutze nun die Funktion isReachable() allerdings bekomme ich IMMER true zurückgegeben. Egal ob der Rechner online ist, offline oder nicht existiert.
Das gilt solange ich es als IP eingebe. Übergebe ich eine Adresse (http://www.gibtsnetbla.de) wirft er mir eine UnknownHost (so wie er soll). Existierende Adressen geben auch true zurück.

Hier der Codeausschnitt:
Code:
        boolean result = false;
        try {
            result = InetAddress.getByName(ip).isReachable(timeOut);
        System.out.println(result);
        } catch(UnknownHostException exception) {
            // 
        System.out.println("exception");
        } catch (IOException exception) {
        }

Den Processbuilder wollte ich nicht nehmen, da ich eine Javaeigene Methode für schneller gehalten habe. Sagt mir wenn ich mich irre ;)
Mir gehts wirklich darum die schnellste Art umzusetzen. Bin für Vorschläge offen.

Danke! :)

Gruß
 

Franz Degenhardt

Erfahrenes Mitglied
isReachable gibt bei mir false zurück für nicht erreichbare Addressen.
Teste evtl. nochmal ausführlich.

edit: UnknownHostException fällt, wenn der Hostname dns-mässig nicht aufgelöst werden kann.
 

Ashaman

Mitglied
entschuldige für die späte Antwort.
Ich war leider vom Internet abgeschnitten...

Also ich habe das Ganze jetzt noch auf einem anderem System testen können und dort funktioniert es.
Warum es bei meinem ersten System nicht geht versteh ich zwar nicht aber, da es wohl ein lokales Problem ist seh ich die Sache als erledigt an.
Danke dir für deine Antwort :)