-
07.07.11 13:11 #1
- Registriert seit
- Jun 2011
- Beiträge
- 119
Hallo liebe C´ler!
ich schreibe gerade ein Programm in Java, welches einen Port, sowie IP von-bis Bereiche aufruft. Dann soll er jede von IP auf die bis IP hochzählen. (schon passiert
), anschließend bzw. während dem Hochzählen soll jede IP angepingt werden. Dabei soll geschaut werden ob der Port vorhanden ist. In jedem falle soll ausgegeben werden was für ein Port dran hängt wenn er nicht der geforderte Port ist.
(auf Port x laufen alle PC´s mit Virenscanner, daher soll´s so geschaut werden wo noch die Virenscanner fehlen.)
Nun ist mein Problem in Java das man eben dieses so nicht realisieren kann. Dank der Info vom User Spike, habe ich erfahren das dies mit C möglich, sogar relativ einfach ist.
Ich würde dann über JNI das ganze in Java einbinden.
Daher möchte ich euch fragen ob ihr mir bitte helfen könntet. Das Programm wäre dannach endlich fertig
Ich möchte noch erwähnen das ich zwar C++ spreche, aber selbst das nicht perfekt. Mir ist C daher nicht so geläufig...
Grüße!
-
Hi
du willst also pro IP auf (maximal) zwei Ports überprüfen, ob da was auf Verbindungen wartet?
Warum soll das in Java nicht möglich sein?
Du machst eine Socketverbindung zum einen Port.
Wenn da was ist: Ohne Virenscanner.
Wenn da nichts ist, machst du eine Verbindung zum anderen Port.
Wenn da was ist: Mit Virenscanner
Wenn da auch nichts ist: Kein Rechner/Ausgeschaltet/Dein Programm nicht gestartet.
Da du sowieso auf die Ports überprüfen musst, kannst du dir den Ping vorher auch sparen.
Wenn nichts online ist, bekommst du den Fehler bei den Sockets auch.
Gruß
-
08.07.11 09:09 #3
- Registriert seit
- Jun 2011
- Beiträge
- 119
Servus Sheel,
es sollen x beliebige Ports geprüft werden. bzw. könnte ich das auch auf einen Port beschränken, wobei mehrere einfach praktischer wäre.
Die Ports werden also eingegeben, dann dem programm übergeben und dieses soll nun schauen ob die Ports da sind, wenn nicht solls schauen ob es evt. 2 windowsports sind, wenn nicht dann solls schauen welcher port den dran steht. IP´s die nicht angepingt werden können sowie IP´s die den eingegebenen Port haben fallen aus der Ausgabe raus.
Zum Thema wieso es nicht in Java möglich ist:
Man braucht für einen Ping einen ICMP Socket (Socket_RAW), diesen gibts in Java so nicht (nur UCP und TCP) ... TCP Socket eignen sich einfach nicht als Ping, da diese so gut wie von jeden gut eingestellten Rechner geblockt werden...
Edit:
Ich werde deffinitiv deinen Lösungsansatz mal ausprobieren!
Edit2:
Und wie binde ich dann die IP Bereiche ein? Ich mein das muss ja festgelegt werden oder?Geändert von Alex Großmann (08.07.11 um 09:31 Uhr)
-
08.07.11 09:34 #4SE Tutorials.de Gastzugang
@sheel
Es geht hier sehr wohl um einen Ping da TO nicht sicher gehen kann ob an Port X auch was läuft ... er aber trotzdem wissen möchte ob es ein laufendes System gibt was auf diese IP hört ... und genau DAS ist mit Java eben NICHT möglich.
-
Hmmm...irgendwie erschließt sich mir der ganze Sinn des Programms noch immer nicht.
Egal, ich such mal einen Pingcode auf meiner Festplatte.
Kommt noch...
edit:
So, gefunden.
Aber etwas wirst du glaub ich noch warten müssen,
ich werde den Code nämlich (endlich, nach Jahren)
etwas schöner formatieren.Geändert von sheel (08.07.11 um 13:40 Uhr)
-
Hallo,
Hast du dir das schon mal angeschaut?
http://www.0x13.de/index.php/code-sn...g-in-java.html
Gruß
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
08.07.11 13:36 #7
- Registriert seit
- Jun 2011
- Beiträge
- 119
Danke für den Link, die Jcap lib war mir auch schon ein Dorn im Auge...probieren kann man es ja mal..
-
Schön, dann spar ich mir die Formatiererei...zum Glück
-
08.07.11 14:13 #9
- Registriert seit
- Jun 2011
- Beiträge
- 119
-
08.07.11 14:22 #10
- Registriert seit
- Jul 2003
- Ort
- Montreal (Quebec)
- Beiträge
- 1.666
Das ist so nicht richtig. Ein Ping dient der Überprüfung, ob ein Host erreichbar ist. Genau das kann man aber implizit auch über einen TCP-Connect herausfinden. Die Antwort auf eben diesen Connect sagt Dir nämlich, ob der Host unbekannt ist (offline), nicht antwortet (drop), die Verbindung verweigert (reject) oder akzeptiert. Ein Ping ist da nicht nötig. Ich bin mir sicher, dass auch Java das leisten kann, ggf über die Exceptions eines Connect-Versuches.
-
@Alex Großmann: Da ich das Ping-Zeug sicher wieder mal irgendwann hier fürs Forum brauche, werd ichs schon machen...
aber bitte nicht hetzen. Irgendwann in der Nacht wirds kommen.
Nur gerade anfängertauglich ist der Code auch nicht.
Man kann ihn zwar einfach verwenden,
aber verstehen was da passiert ist eben etwas schwieriger.
Gruß
-
08.07.11 18:02 #12
- Registriert seit
- Jun 2011
- Beiträge
- 119
Keine hektikt!

Freu mich nur wenn er kommt
-
08.07.11 19:53 #13
- Registriert seit
- Jul 2003
- Ort
- Montreal (Quebec)
- Beiträge
- 1.666
Nochmal: Du brauchst keinen Ping.
Du machst einen TCP-Connect auf die Adresse mit dem spezifizierten Port. Wird die "UnknownHostException" geworfen ist der Host nicht erreichbar. Also das, was Du umständlich über einen Ping herauszufinden versuchen würdest. Die Methode ohne Ping hat den Vorteil, dass Du im günstigsten Fall auch gleich mit dem Host verbunden bist. Natürlich solltest Du auch die anderen relevanten Exceptions auswerten. Hierfür lege ich Dir die Dokumentation von Java ans Herz.
Kleine Nebeninfo: Wenn Du pingst und bekommst keine bzw. eine negative Antwort , heißt das nicht, dass der Host automatisch auch alle anderen Verbindungen verweigert. ICMP werden von so vielen "Admins" als generell zu filtern eingestuft – eine dumme Unsitte die auf gefährlichen Halbwissen beruht. Lass das mit dem Pingen also in diesem Fall.
-
08.07.11 20:10 #14
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.516
Nicht nur Admins machen das, als Otto-Normal-User kann man mit seiner Windows-Firewall einfach ICMP-Echos abwürgen und so quasi in Stealth gehen.
Ich pflichte Navy bei, das geht prima mit Java-Board-Mitteln. Außerdem gibts in den Java-Docs sogar ein Beispiel zum Pingen:
http://download.oracle.com/javase/1....mple/Ping.javaGrüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
08.07.11 20:37 #15
- Registriert seit
- Jul 2003
- Ort
- Montreal (Quebec)
- Beiträge
- 1.666
Nochmal langsam: Ping ist hier überflüssig. Nenn mir einer mal einen Vorteil des Ping in diesem Fall!
Ähnliche Themen
-
Java-Mail: Protokolle implementieren / API gesucht
Von NeoP5 im Forum JavaAntworten: 1Letzter Beitrag: 25.01.10, 20:50 -
huhu =) implementieren von java
Von Erbsenkommandant im Forum vB-TestforumAntworten: 0Letzter Beitrag: 21.11.09, 18:28 -
alle Ports öffnen und auf allen Ports lauschen
Von KMX-Robin im Forum Visual Basic 6.0Antworten: 5Letzter Beitrag: 03.04.08, 21:15 -
VSPD (virtuel serial ports driver) uu viele physical ports
Von Trebjun im Forum NetzwerkeAntworten: 0Letzter Beitrag: 17.07.07, 01:30 -
[C] Com-Ports / serielle Ports abfragen und in Menu übetragen
Von Mr_Luke im Forum C/C++Antworten: 0Letzter Beitrag: 13.12.06, 14:50



1Danke

Zitieren




Login






