Netzwerk Ping falsches ergebnis

MaxG.

Bekanntes Mitglied
Hi,
ich bin gerade dabei ein tool zu programmieren das alle IP Adressen im Netzwerk Anzeigen kann. Dabei verwende ich eine Schleife die alle möglichen IP Adressen durchgeht. Der Ping wird mir der klasse InetAdress durchgeführt:
Code:
do{
            boolean address = false;
            count ++;
           
            try {
                address = InetAddress.getByName(ip).isReachable(5000);
            } catch (IOException e) {
               
            }
           
            if(address){
                String text = results.getText();
                results.setText(text + "\n" + ip + " erreichbar");
                count = 4;
            }
count = Integer Variable die mit 0 Initialisiert wurde
results = ist eine TextArea aus JavaFX
ip = String Variable in der die IP Adresse steht (siehe fortfolgender Code)

Das Problem ist jetzt aber das die Klasse sagt das z.B. 192.168.178.3 erreichbar ist sie existiert in meinem Netz aber nicht. Nur bei ganz wenigen Adressen sagt er das sie nicht erreichbar sind.
Meine Frage daher: Woran liegt das und was kann ich dagegen machen?

Hier noch der ganze Code:
Code:
package Tools;

import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;

import javax.swing.JOptionPane;

import javafx.application.*;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ProgressBar;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class NetworkPing extends Application {
   
    BorderPane content;
    StackPane center;
    HBox menu;
    HBox buttons;

    Label setNetwork;
    Label setSubnet;

    TextField firstOktett;
    TextField secondOktett;
    TextField thirredOktett;
    TextField fourthOktett;
    TextField subnettMask;

    TextArea results;

    ProgressBar progress;

    Button startPing;
    Button cancel;
   
    int numberof;
    int lenght = 0;
    int discount = 0;

    public void start(Stage stage) {
        content = new BorderPane();
        content.setPadding(new Insets(20, 20, 20, 10));
        menu = new HBox();
        menu.setSpacing(5);
        buttons = new HBox();
        buttons.setSpacing(5);
        buttons.setAlignment(Pos.BASELINE_RIGHT);
        center = new StackPane();
        center.setPadding(new Insets(5, 5, 5, 5));

        setNetwork = new Label("Netz indem gesucht werden soll: ");
        setSubnet = new Label("Subnet des Netz: ");
        firstOktett = new TextField();
        secondOktett = new TextField();
        thirredOktett = new TextField();
        fourthOktett = new TextField();
        subnettMask = new TextField();

        results = new TextArea();
        results.setEditable(false);
        results.setPadding(new Insets(3, 3, 3, 3));

        startPing = new Button("Ping");
        cancel = new Button("Abbrechen");
        progress = new ProgressBar();

        menu.getChildren().setAll(setNetwork, firstOktett, secondOktett, thirredOktett, fourthOktett, setSubnet,
                subnettMask);
        buttons.getChildren().addAll(cancel, startPing);
        center.getChildren().add(results);

        content.setTop(menu);
        content.setBottom(buttons);
        content.setCenter(center);

        Scene scene = new Scene(content);

        stage.setScene(scene);
        stage.setMaximized(true);
        stage.show();
        listener();
    }

    private void listener() {
        startPing.setOnAction(new EventHandler<ActionEvent>() {

            @Override
            public void handle(ActionEvent arg0) {
                // TODO Auto-generated method stub

                buttons.getChildren().removeAll(cancel,startPing);
                buttons.getChildren().addAll(progress,cancel,startPing);
                try {
                    startPing();
                } catch (UnknownHostException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
               
            }
        });
    }

    private void startPing() throws UnknownHostException {
        int oktett1 = 0;
        int oktett2 = 0;
        int oktett3 = 0;
        int oktett4 = 0;

        try {
            if(firstOktett.equals(null)){
                oktett1 = 0;
                numberof = 255 * 255 * 255 * 255;
            }else{
                oktett1 = Integer.parseInt(firstOktett.getText());
            }
           
        } catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(null, "Bitte Oktett 1 korekkt angeben!");
        }

        try {
            if(secondOktett.equals(null)){
                oktett2 = 0;
                numberof = 255 * 255 * 255;
            }else{
                oktett2 = Integer.parseInt(secondOktett.getText());
            }
        } catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(null, "Bitte Oktett 2 korekkt angeben!");
        }

        try {
            if(thirredOktett.equals(null)){
                oktett3 = 0;
            }else{
                oktett3 = Integer.parseInt(thirredOktett.getText());
                numberof = 255 * 255;
            }
        } catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(null, "Bitte Oktett 3 korekkt angeben!");
        }

        try {
            if(fourthOktett.equals(null)){
                oktett4 = 0;
                numberof = 255;
            }else{
                oktett4 = Integer.parseInt(fourthOktett.getText());
            }
        } catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(null, "Bitte Oktett 4 korekkt angeben!");
        }

        if (oktett4 == 0) {
            oktett4 ++;
            oktett4(oktett1,oktett2,oktett3,oktett4);
        }
       
        if (oktett3 == 0) {
            oktett4 ++;
            oktett3(oktett1,oktett2,oktett3,oktett4);
        }
       
        if (oktett2 == 0) {
            oktett4 ++;
            oktett2(oktett1,oktett2,oktett3,oktett4);
        }
       
        if (oktett1 == 0) {
            oktett4 ++;
            oktett1(oktett1,oktett2,oktett3,oktett4);
        }
       
       

    }

    private void oktett1(int oktett1, int oktett2, int oktett3, int oktett4) {
        for(int count = oktett1; count < 255;count++){
            oktett1 = count;
            oktett2(oktett1,oktett2,oktett3,oktett4);
        }
    }

    private void oktett2(int oktett1, int oktett2, int oktett3, int oktett4) {
        for(int count = oktett2; count < 255;count++){
            oktett2 = count;
            oktett3(oktett1,oktett2,oktett3,oktett4);
        }
    }

    private void oktett3(int oktett1, int oktett2, int oktett3, int oktett4) {
        for(int count = oktett3; count < 255;count++){
            oktett3 = count;
            try {
                oktett4(oktett1,oktett2,oktett3,oktett4);
            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    private void oktett4(int oktett1, int oktett2, int oktett3, int oktett4) throws UnknownHostException {
        for (int count = oktett4; count < 255; count++) {

            oktett4 = count;

            String ipAddress = String.valueOf(oktett1) + "." + String.valueOf(oktett2) + "." + String.valueOf(oktett3) + "."
                    + String.valueOf(oktett4);

            loop(ipAddress);
        }
    }

    private void loop(String ip) throws UnknownHostException {
        int count = 0;
        int currentlenght = ip.length();
       
        if(currentlenght> lenght){
            lenght = currentlenght;
            discount ++;
        }
       
        int current = Integer.parseInt(ip.substring(ip.length() - discount));
        do{
            boolean address = false;
            count ++;
           
            try {
                address = InetAddress.getByName(ip).isReachable(5000);
            } catch (IOException e) {
               
            }
           
            if(address){
                String text = results.getText();
                results.setText(text + "\n" + ip + " erreichbar");
                count = 4;
            }
           
            System.out.println((address) ? ip + " Hoast erreichbar" : ip + " Host nicht erreichbar");
           
        }while(count < 4);
       
       
        progress.setProgress(current/numberof);
        buttons.requestLayout();
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        launch();
    }
}

PS Ein weiteres Problem ist das sobald man den Button startPing aufruft öffnet sich ein Zweites Fenster und es werden die ersten 2 IP Adressen als erreichbar angezeigt dann muss das Programm erst zu ende laufen bis alles angezeigt wird.
 

MaxG.

Bekanntes Mitglied
Hab jetzt in den Chatch Block ein e.printstackTrace() und ein System.out.println() geschrieben, hat aber auch nichts geholfen.
 

MaxG.

Bekanntes Mitglied
Ja bin ich, da sich im Netzwerk höchstens 15 Geräte befinden aber er bei über 200 Adressen true liefert
 

Meniskusschaden

Top Contributor
Das Problem ist jetzt aber das die Klasse sagt das z.B. 192.168.178.3 erreichbar ist sie existiert in meinem Netz aber nicht. Nur bei ganz wenigen Adressen sagt er das sie nicht erreichbar sind.
Ich kann das nicht reproduzieren. In meinem Netz stimmen die Ausgaben deines Programms.
Ja bin ich, da sich im Netzwerk höchstens 15 Geräte befinden aber er bei über 200 Adressen true liefert
Ein Gerät kann aber viele IP-Adressen haben, deshalb ist das noch kein Beweis. Hast du denn getestet, ob die Adressen wirklich nicht erreichbar sind? Vielleicht ist ja ein Gerät fehlerhaft konfiguriert.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I ActiveMQ-Messages übers Netzwerk Netzwerkprogrammierung 13
M Socket Netzwerk Übertragung zwischen 4 Clients Netzwerkprogrammierung 2
temi (Netzwerk-) Kommunikation zwischen Anwendungen. Wie? Netzwerkprogrammierung 5
W Das Netzwerk entfernen mit Wifi Manager Netzwerkprogrammierung 1
F Neuronales Netzwerk - Genetischer Algorithmus Netzwerkprogrammierung 0
windl Sporadische Aussetzer im Netzwerk Netzwerkprogrammierung 10
T Broadcast-message über spez. Netzwerk-Schnittstelle Netzwerkprogrammierung 1
T Netzwerk Login Felder ansprechen Netzwerkprogrammierung 1
B Netzwerk - Fernsteuerung Netzwerkprogrammierung 1
S Netzwerk-Framework gesucht Netzwerkprogrammierung 6
J Hilfe beim programmiern einer App zur Anmeldung im Wlan-Netzwerk Netzwerkprogrammierung 0
C Netzwerk Portzuweisungsproblem Netzwerkprogrammierung 0
I PingPong Spiel übers Netzwerk Netzwerkprogrammierung 1
M Verbindung zwischen zwei Pc in dem Selben Netzwerk Netzwerkprogrammierung 8
M PongSpiel Netzwerk Netzwerkprogrammierung 1
D Geräte im Lokalen netzwerk auflisten Netzwerkprogrammierung 1
fLooojava Daten an ein Arduino im selben Netzwerk senden Netzwerkprogrammierung 1
I Netzwerk FileShare Program Netzwerkprogrammierung 2
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
D Ermitteln ob WLAN-Netzwerk UDP unterstützt Netzwerkprogrammierung 1
O 4Gewinnt Multiplayer - Netzwerk Problem (TCP) Netzwerkprogrammierung 1
B WebSocket Verbindungsaufbau aus localen Netzwerk Netzwerkprogrammierung 2
S Bilder durch's Netzwerk usw ... Netzwerkprogrammierung 10
Kr0e Dezentrales Soziales Netzwerk Netzwerkprogrammierung 48
G Klassen über Netzwerk kommunizieren lassen Netzwerkprogrammierung 6
vandread Zugriff auf Soziales Netzwerk mittels Java? Netzwerkprogrammierung 4
P Automatische Host suche im Netzwerk Netzwerkprogrammierung 3
D Socket Class über Netzwerk verschicken Netzwerkprogrammierung 2
S Netzwerk Verbindungsproblem mit Cajo Netzwerkprogrammierung 5
c_sidi90 ideale Lösung, Screen Capture über Netzwerk Netzwerkprogrammierung 3
J Komplexes Netzwerk-Spiel im Internet Netzwerkprogrammierung 13
J ObjectInputStream im Netzwerk Netzwerkprogrammierung 8
T ArrayList über Netzwerk senden! Netzwerkprogrammierung 5
A java im netzwerk anderen rechner runterfahren Netzwerkprogrammierung 3
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8
M Netzwerk Programmierung Netzwerkprogrammierung 2
F Netzwerk-Designkonzept Netzwerkprogrammierung 2
D Ring-Netzwerk - wie fange ich an? Netzwerkprogrammierung 3
X Password übers Netzwerk schicken jPasswordField Netzwerkprogrammierung 2
M Socket Bilder über das Netzwerk übertragen Netzwerkprogrammierung 4
c_sidi90 Alle Rechner im Netzwerk ermitteln Netzwerkprogrammierung 17
D Netzwerk-To-Do-Liste Netzwerkprogrammierung 5
Semox Socket Selbstgeschriebenen Webserver im lokalen Netzwerk publizieren? Netzwerkprogrammierung 4
S Socket nach anderen clients im netzwerk suchen Netzwerkprogrammierung 3
T Netzwerk-Dateiübertragung optimieren Netzwerkprogrammierung 15
G Netzwerk Speed checken Netzwerkprogrammierung 3
L Socket Socketverbindung nur im lokalen Netzwerk Netzwerkprogrammierung 12
F Char über Netzwerk senden Netzwerkprogrammierung 6
P SocketServer im lokalen netzwerk suchen Netzwerkprogrammierung 2
I Objekte über das Netzwerk Netzwerkprogrammierung 5
B RMI RMI, Callback und Netzwerk Netzwerkprogrammierung 6
agent47 IP Adressen im Lokalen Netzwerk Scannen Netzwerkprogrammierung 7
S Netzwerk und Objekte Netzwerkprogrammierung 5
G Netzwerk IP Frage Netzwerkprogrammierung 4
Akrillo Datei per Netzwerk senden Netzwerkprogrammierung 10
W funktionen übers netzwerk nutzen Netzwerkprogrammierung 4
Kr0e Versenden von Daten übers Netzwerk Netzwerkprogrammierung 30
M upnp Device-Discovery im Netzwerk Netzwerkprogrammierung 5
T Administration von Software auf Clients im Netzwerk Netzwerkprogrammierung 6
H MySQL übers Netzwerk Netzwerkprogrammierung 9
A Probleme mit kleinem Netzwerk Programm Netzwerkprogrammierung 30
T Pfadangabe beim kopieren übers Netzwerk Netzwerkprogrammierung 5
G Verschlüsselte Strings über Netzwerk verschicken Netzwerkprogrammierung 19
D robustes Netzwerk Netzwerkprogrammierung 2
N HTML-Übertragung im lokalen Netzwerk mit Java - wie? Netzwerkprogrammierung 6
G Datei performant im Netzwerk verschieben Netzwerkprogrammierung 4
D BufferedImage über das Netzwerk senden Netzwerkprogrammierung 2
E Netzwerk Fehlererkennung Netzwerkprogrammierung 11
M Pc's im Netzwerk auflisten Netzwerkprogrammierung 2
T Welches Netzwerk ist am bestern für. Netzwerkprogrammierung 2
ModellbahnerTT Problem feste String ins Netzwerk zu geben Netzwerkprogrammierung 5
A IRC-Server für das lokale Netzwerk? Netzwerkprogrammierung 12
TheJavaKid Anzahl der Server im Netzwerk Netzwerkprogrammierung 7
R Spiel auf Netzwerk auslegen? Netzwerkprogrammierung 10
R Applet & Netzwerk Netzwerkprogrammierung 4
K netzwerk durchsuchen Netzwerkprogrammierung 10
A array übers netzwerk (anfänger) Netzwerkprogrammierung 8
T Möglichkeit über das Netzwerk eine Funktion zu starten? Netzwerkprogrammierung 2
flashfactor Dateien im Netzwerk kopieren Netzwerkprogrammierung 2
R File chooser übers Netzwerk Netzwerkprogrammierung 3
A Betriebssystem über Netzwerk ermitteln Netzwerkprogrammierung 11
B Netzwerk-IP´s sammeln Netzwerkprogrammierung 16
S Netzwerk übers Internet Netzwerkprogrammierung 30
J Brauche hilfe bei Projekt: Netzwerk Chatprogramm Netzwerkprogrammierung 12
M anpingen, liste aller IPs im netzwerk erhalten Netzwerkprogrammierung 5
S Spiel über Netzwerk. Netzwerkprogrammierung 7
O wie schnell kann java netzwerk sein? Netzwerkprogrammierung 7
D Netzwerk Betrachtung mit vielen Clients Netzwerkprogrammierung 2
D Netzwerk Game, bitte hilfe. Netzwerkprogrammierung 2
L netzwerk mit thread Netzwerkprogrammierung 3
B Netzwerk simulieren Netzwerkprogrammierung 2
8 ByteArray per Netzwerk verschicken Netzwerkprogrammierung 6
P Serialialiserte Objekte übers Netzwerk verschicken Netzwerkprogrammierung 9
T Client-Authorisierung-Netzwerk Netzwerkprogrammierung 4
G Verzeichnis eines Rechners übers Netzwerk auslesen Netzwerkprogrammierung 5
B Netzwerk Dokumentation Netzwerkprogrammierung 2
G MySQL über Netzwerk --> Problem Netzwerkprogrammierung 13
M Netzwerk spiel??? Netzwerkprogrammierung 9
B Nachrichten über das Netzwerk verschicken Netzwerkprogrammierung 3
MaxG. Ping in JTextArea anzeigen Netzwerkprogrammierung 11

Ähnliche Java Themen

Neue Themen


Oben