Zum Inhalt springen

Empfohlene Beiträge

Geschrieben
Original geschrieben von BMAS

@Mirko

Ja, bitte mach´ das!

Ich meinte das aber andersrum... Schick du den Code und wir suchen den Fehler...

oder mach das per Socket... ist schon komfortabler...und eigentlich fast einfach als dein File IO gedönse..

Geschrieben

Vor allem ist es nicht nur komfortabler, sondern auch zweckmäßiger. Was willst du mit ner Textdatei auf nem Linux-System oder nem MAC?? WO BLEIBT DA DEN DIE PLATTFORMUNABHÄNGIGKEIT??? ;)

Außerdem müsstest du das File ständig pflegen!!

cu Peeter

Geschrieben


import java.io.*;

import java.lang.Runtime;

import java.net.*;


class antivirus2

        {

         public static void main(String args[])

          {

                try

                {

                File altedef            = new File("W:\\antivirus\\","altedef_1.txt");


                FileWriter fw1          = new FileWriter(fehler);

                LineNumberReader ein    = new LineNumberReader(new FileReader(altedef));

                String rechner          = ein.readLine();




                while (rechner !=null)

                {



                Socket sock=new Socket(rechner,80);


                sock.setTcpNoDelay(true);

                sock.setSoLinger(false,5);

                sock.setSoTimeout(10);


                System.out.println(rechner+" ist erreichbar");


                sock.close();

                rechner=ein.readLine();

                }

                }

                catch (IOException p)

                {

                System.out.println("Fehler: "+p);

                }

}

}

Ich bekomme mit dem Code eine SocketException, was heisst das? :eek:

Geschrieben

Ein Socket besteht immer aus einer eindeutigen IP-Adresse und einem Port!

Den Port hast du ja fest vorgegeben. (Wobei ich nicht den Port 80 nehmen würde, oder hast du auf jedem Rechner im Netzwerk einen WebServer laufen??)

Ich würde wirklich Port 135 bzw. 137 nehmen!! Da kannst du nix falsch machen.

while (rechner !=null)

{

Socket sock=new Socket(rechner,80);

sock.setTcpNoDelay(true);

sock.setSoLinger(false,5);

sock.setSoTimeout(10);

System.out.println(rechner+" ist erreichbar");

sock.close();

rechner=ein.readLine();

}

Jetzt hast du aber einen Fehler gemacht. Deine Variable "rechner" muß eine IP sein! (xxx.xxx.xxx.xxx)

Wenn du das änderst, hast du schon die halbe Miete.

Die letzten 3 xxx müssen nur um 1 erhöht werden.(Außer ihr habt noch nen Router im Netzwerk, dann wird´s schwieriger.)

cu Peeter

MAHLZEIT!! (Ich geh jetzt was essen)

Geschrieben

Kann ich das nicht irgendwie mit dem Rechnernamen machen? Ich habe hier eine Liste mit allen Rechnern (so ca. 800). Aber wenn ich die IP haben will, muss ich nochmal 2 Std. exportieren, bzw. weiss ich gar nicht ob die herausfinde...

Geschrieben

Das könntest du ja auch automatisieren. Ganz ohne Datei..

Du baust dir einfach eine Schleife, dir dir die Ips hochzählt. Kommt natürlich ein wenig auf die von euch benutzten Ip-Adressen an...

So kannst du dann natürlich nur sagen, welche Rechner an sind und nicht welche aus... aber das kommt drauf an, wofür du es brauchst...

Geschrieben

Klar kannst du auch die Rechnernamen nehmen!!

InetAddress addr=InetAddress.getByName(host);

System.out.println(addr.getHostName()+"("+addr.getHostAddress()+")");

(hier wird beides auf die Konsole ausgegeben NAME+IP)

Aber das erkläre ich dir nach´m Mittag!! Oder dann per Mail, denn das dauert länger!!

cu Peeter

Geschrieben

@Mirko

Ich brauche das Programm, um eine Viendefinitions im Netz zu verteilen. Damit ich weiss, welche Rechner die noch nicht haben, wollte ich die in ein Textfile schreiben.

@Peeter

Habe dir ´ne Mail geschickt!

Geschrieben

Also, ich hab leider nicht den Quellcode hier, aber ich hab schonmal so eine Socketabfrage gemacht und falls es noch die Frage, zu den Returncodes gibt:

Es gibt so eine Art "Returncodes". Es sind aber eher Fehlermeldungen, falls ein Rechner nicht erreichbar ist.

Und wärend des Abfangen dieses spezifischen Fehlers dann z.B. ausgeben, System.out.println("Rechner gibts nicht, oder ist aus.");

Guck einfach nochmal irgendwo im Tutorial nach, welche Fehlermeldungen das genau waren.

Sonst kann ich leider nichts dazu sagen.

Geschrieben

Sag ich doch die ganze Zeit. Sobald sich der Socket nicht verbinden kann, tritt eine Exception auf (IOException). Wenn diese Auftritt, ist kein Rechner mit dieser IP online.

Eigentlich ganz einfach!! :D

cu Peeter

  • 2 Monate später...
Geschrieben

Hi leute

Ich hab da mal eine Frage zu Socket!

Wird bei Socket nur abgefragt, ob der angegebene Port offen ist oder auch ob dort ein Dienst aktiv ist?

Kann man eigentlich nur danach gucken ob der Port offen ist, oder MUSS ein Dienst aktiv sein?

MfG

Dalton

Geschrieben

Also eigentlich wird versucht, sich gleich mit dem Port zu verbinden. Wenn es funktioniert hast du eine bestehende Verbindung zwischen 2 Rechnern auf einem bestimmten Port.

Ein Dienst muß nicht aktiv sein. Nur ein funktionierendes Netzwerk.

cu Peeter

Geschrieben

ich ahb aber ein Prog geschrieben welche offene Ports prüft, und ich bekommen aber immer nur eine verbindung mit dem Port 139 obwohl keine Firewall aktiv ist!

Oder was ist sonst die Bedingung für einen offenen Port?

MfG

Dalton

Geschrieben

Schließt du eigentlich die Sockets, mit denen du dich verbindest, wieder?

Außerdem sind nicht bei allen Rechnern viele Ports offen. eigentlich sollten so wenig Ports wie möglich offen sein.

Nimm am besten mal nen Proxy oder was ähnliches. Die haben eigentlich relativ viele Ports offen.

cu Peeter

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...