Bestimmte Klassen für Netzwerkchecks gesucht

MAGIo

Aktives Mitglied
Hallo, ich suche nach Hilfestellungen zur Entwicklung eines JAVA Tools. Daher bräuchte ich Einschränkungen in der Suche nach geeigneten Klassen und Methoden. Bitte helft mir:

- IP Adressen im LAN herausfinden via Broadcast Nachricht oder Ping
- NIC Spezifikationen ähnlich wie bei ipconfig /all herausfinden
- Ping (soll ja nur über Umwege möglich sein)
- Portscans (WICHTIG UDP) ähnlich wie bei nmap
- Messung der maximalen Verbindungen (max parallel Connections)
- Bandbreitenmessung (als Benchmark)
- Route bestimmen wie bei traceroute
- Datenpakete an einem Server empfangen
- Protokollierung des kompletten Datenverkehrs (wie bei Wireshark)


Aktuell bin ich noch recht hilflos, hoffe Ihr könnt mir da weiterhelfen.
Ich denke die Klasse InetAddress und NetworkInterface sollten hilfreich sein. sowie das Java.net package
 

MAGIo

Aktives Mitglied
Wobei das was du da suchst, insbesondere der letzte Punkt wohl am Rande der legalität ist.

Das möchte ich dementieren, da es um einen ganz bestimmten Port und eine Art Qualitätsmanagement Tool für VoIP Datenverkehrt geht. Also muss ich auch in dem Fall tricksen um mit JAVA sowas zu realisieren?
 
M

maki

Gast
Was raiL meinte war nicht dass du etwas illegales vorhast, sondern dass in Deutschland die Verwendung bestimmter libs in bestimmten Szenarien am Rande der Legälität ist, wenn nicht sogar einen Schritt weiter.

Tricksen musst du nciht, es gibt halt keine reine Javalösung dafür, sondern nur kombinierte native/java Lösungen.
 

Kr0e

Gesperrter Benutzer
Hi MAGIo,

keine Sorge. Nix davon ist illegal, das ist Unsinn. Ein Hammer ist ja auch nicht illegal, nur weil man damit jemanden töten kann :D.
Wie mein Vorredner bereits gesagt hat: Kommt auf den Anwendungszweck an...
Nun zu deinen Fragen:

Wenn du etwas wie Wireshark machen willst, wird es schwer. Dafür brauchst du Rawsockets. Das ist eine Schnittstelle, mit der du Sockets erstellen kannst, ohne IP oder UDP oder TCP oder sonstige bereits vorhandene Protokolle. Problem ist, dass Java nur TCP/IP und UDP/IP implementiert. Ohne eine native Lösung kommst du da nicht weiter. In dem Fall würde ich sowieso von Java abraten. Das letzte Problem erfordert Plattformabhängige Implementierungen. Außerdem sind RAW-Sockets unter WIndows nur eingeschränkt nutzbar. Die volle Funktionalität ist nur mit Unixsystemen erreichbar. WIndows schränkt aus Sicherheitsgründen einige Sachen ein, damit kein Schindluder :D getrieben werden kann. Aber wie man an Wireshark sieht, geht das dennoch. Die verändern glaub ich bei Windows den Treiber oder installieren einen zusätzlichen oder so. Sofern es nicht Wireshark-Java-Wrapper gibt oder ähnliches, wird das praktisch unmöglich.

Java + Portscans sollten möglich sein. Mein TIpp: Google ist dein Feund. Gibt garantiert gute, existierende Lösungen dafür.
Ping kann problematisch werden: Das normale Pingprotokol basiert auf ICMP welches wiederum direkt auf IPv4 basiert, ergo nicht mit TCP + UDP am Hut hat.. Denke ich mal :p Aber hier sollte es native Lösungsansätze geben. Aber is jetzt nur geraten, vlt. geht das auch direkt mit Java...

Traceroute ist auch mit ICMP implementiert. Muss man sich mal erkundigen...

Id Addressen herausfinden geht nur, wenn auf den Rechnern ein Dienst läuft, der bei Broadcastnachrichten sagt "Hallo, ich, ich hier!" Sonst keine Ahnung.

Beim Rest muss ich leider passen :p

Gruß,

Chris
 
T

tuxedo

Gast
Hi MAGIo,

keine Sorge. Nix davon ist illegal, das ist Unsinn. Ein Hammer ist ja auch nicht illegal, nur weil man damit jemanden töten kann :D.
Wie mein Vorredner bereits gesagt hat: Kommt auf den Anwendungszweck an...

Es hieß ja auch nur: "... am Rande der Legalität..."


Siehe dazu auch:

http://de.wikipedia.org/wiki/Hackerparagraf hat gesagt.:
Welche Software unter Hackertools fällt, ist im Gesetzestext sehr vage formuliert und stößt daher auf erhebliche Kritik insbesondere von Sicherheitsexperten und IT-Branchenverbänden. Vor allem wird kritisiert, dass allein entscheidend sei, dass ein Programm oder eine Information genutzt werden könnte, in fremde Computer einzudringen und keine Ausnahmeregelungen bestehen, die den Einsatz für legale Zwecke erlaubt.

Somit ist es "Ansichtssache". Und deshalb ist "... am Rande der Legalität..." passend formuliert.

- Alex
 
Zuletzt bearbeitet von einem Moderator:

Kr0e

Gesperrter Benutzer
Hätte da ein nettes (wenn auch fern ab vom Thema) Beispiel :D

Beim Einlegen einer (z.B.) gekauften Audio-CD fragt mich der WMP, ob ich die CD abspielen lassen will, oder kopieren will :D

Gruß,

Chris
 

MAGIo

Aktives Mitglied
Puh... Welche Moglichkeiten der Realisierung eines Benchmarks auf JAVA fur ein Netzwerk seht ihre denn? Es geht eigentlich um Qualitatssicherung, mit Java umgesetzt.
 
T

tuxedo

Gast
Hätte da ein nettes (wenn auch fern ab vom Thema) Beispiel :D

Beim Einlegen einer (z.B.) gekauften Audio-CD fragt mich der WMP, ob ich die CD abspielen lassen will, oder kopieren will :D

Was hat das denn mit dem "Hackerparagraphen" zu tun? Entweder die CD ist kopiergeschützt, dann darf ich keine Kopie anlegen können. Oder aber die CD hat keinen Kopierschutz. Dann darf ich im Rahmen der sogenannten "Privatkopie" die CD kopieren.

Aber zurück zum Thema:


Puh... Welche Moglichkeiten der Realisierung eines Benchmarks auf JAVA fur ein Netzwerk seht ihre denn? Es geht eigentlich um Qualitatssicherung, mit Java umgesetzt.

Naja, gehen wir mal deine "Anforderungen" nochmal durch:

- IP Adressen im LAN herausfinden via Broadcast Nachricht oder Ping
-> Wird mit "plain java" nicht gehen. Außer dir reicht es alle vorhandenen Rechner auf einen bestimmten Port (Echo-Service?) zu testen.

- NIC Spezifikationen ähnlich wie bei ipconfig /all herausfinden
-> An IP und Netzmaske kommst du mit Java ran. Gateway? Keine Ahnung. Routen? Wohl eher nicht.

- Ping (soll ja nur über Umwege möglich sein)
-> Das einfachste ist einen "Port zu pingen". Die Zeit die es braucht um eine Socketverbindung herzustellen, ist der, die mit dem "ping" Tool gemessen wird verdammt ähnlich. Wenn nicht sogar in den meisten Fällen nicht voneinander zu unterscheiden. Einen echten Ping (ICMP request etc.) geht mit Plain-Java nicht. Da brauchst du eine native implementierung (.dll / .so / ...) die du mit JNI oder JNA ansprechen kannst.

- Portscans (WICHTIG UDP) ähnlich wie bei nmap
-> Einfache TCP Portscans kannst du mit Java machen. Einfach alle Sockets "durchprobieren" und schaun ob sich eine Socketverbindung herstellen lässt. UDP.. Hmm, ist ja zustandlos. Wie das gescanned wird: Kein Plan. Dürfte aber auf "unteren levels" funktionieren, und deshlab wieder eine .dll/.so erfordern. Also wieder JNI/JNA.


- Messung der maximalen Verbindungen (max parallel Connections)
-> Was soll das aussagen? Reicht dir die Aussage: "10.000 Socketverbindungen sind möglich." Oder muss da auch noch was durch die Leitung gehen? Im einfachsten Fall: Eine Socketverbindung nach der anderen aufmachen bis es zu einer entsprechenden Exception kommt.


- Bandbreitenmessung (als Benchmark)
-> Hier brauchst du einen Client und einen Server zwischen denen du Traffik verursachst. Sollte mit Java kein Problem sein.

- Route bestimmen wie bei traceroute
-> Mit "plain java" ebenfalls nicht möglich. .dl/.so.. JNA/JNI ...

- Datenpakete an einem Server empfangen
-> empfangen oder "abfangen"? TCP und UDP Server kannst du mit Java problemlos basteln und damit Daten empfangen. Daten "abfangen"... Da brauchst du sowas wie pcap, bzw. jpcap (das Java binding für pcap)

- Protokollierung des kompletten Datenverkehrs (wie bei Wireshark)
-> Auch hier: pcap bzw. jpcap

Alles in allem: Java ist für dein Vorhaben in diesem Umfang nicht die optimale Sprache. Viele deiner Anforderungen erfordern tiefe eingriffe ins System die so, mit einer plattformübergreifenden Sprache nicht so einfach zu realisieren sind.

Entweder du beschränkst dich auf das Mögliche (und verzichtest auf JNI/JNA), oder du greifst gleich zu einer Sprache die diese meist low-level Zugriffe von Haus aus kann.
 

MAGIo

Aktives Mitglied
Fuer VoIP ist ja TCP eher unwichtig bzw. eher sekundaer. UDP ist wichtig und wird ja nur auf bestimmten Ports benoetigt, daher ist das ja auch recht uebersichtlich zu gestalten dann. Natuerlich ist es besser dies nur mit den Mitteln die JAVA bietet zu realisieren, daher ja meine Fragen um das entsprechende anzupassen bzw. etwas zu 'basteln' und zu improvisieren.
 

MAGIo

Aktives Mitglied
Aber ich koennte doch praktisch die oben genannte Library verwenden und einbinden. Da ist auf jedenfall traceroute und die Paketverfolgung mit implementiert und fur die restlichen Dinge habt ihr mir ja auch schon etwas geholfen.

Bei den Portscans reicht es ja aus bestimmte (VoIP relevante) Sockets durchzuprobieren.
Die maximale Verbindungsanzahl ist ja ebenfalls realisierbar durch Provokation einer Exception mit den Sockets.
Datenpakete empfangen reicht ja ebenfalls vollkommen aus, da ich eine gezielte client-server Kommunikation einleite und erzwinge.
Und den Ping kann ich ja ebenfalls durch den Tipp realisieren, dass ich die Zeit messe um eine Socketverbindung aufzubauen.
Die vorhandenen Rechner im Netzwerk via Echo Service zu bestimmen, sollte ja ueber den Port 80 realisierbar sein..

doch trotzdem ist es schwierig fuer mich den Anfang zu finden, da das Tool ja ein vorhandenes Netzwerk, welches ja nicht immer gleich ist, scannen und bewerten soll nach den Kriterien UND Kontakt zum Server aufnehmen sollte.

Was meint Ihr hierzu? Soap-Stone: How Fast Is Your Network Today?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Socket Nur bestimmte Zeichen als Kommunikation zulassen Netzwerkprogrammierung 1
V Kann man mit Hilfe eines Java-Programms den Zugriff auf bestimmte Internetseiten verhinden? Netzwerkprogrammierung 3
M Abfrage, ob bestimmte Seite betreten wurde Netzwerkprogrammierung 4
E Mehrere / bestimmte Netzwerkkarten ansteuern Netzwerkprogrammierung 10
K RMI Client auf bestimmte Ip starten. Netzwerkprogrammierung 2
F GSON wenn das Json verschiedene Klassen enthält Netzwerkprogrammierung 1
S Server - Mehrere Klassen sollen Daten senden und empfangen Netzwerkprogrammierung 25
A Probleme beim Klassen-Import von sun.misc. ... Netzwerkprogrammierung 19
G Klassen über Netzwerk kommunizieren lassen Netzwerkprogrammierung 6
D Mit wsimport erstellte Klassen ohne WSDL nutzen Netzwerkprogrammierung 4
M Multiplayerspiel programmieren... welche Klassen sind geeignet? Netzwerkprogrammierung 10
G Klassen über JMX per URLClassloader laden? Netzwerkprogrammierung 2
R wsimport erzeugt klassen -> wie nun weiter? Netzwerkprogrammierung 2
I rmi und download von klassen Netzwerkprogrammierung 12
G CORBA Klassen werden nicht erkannt. Netzwerkprogrammierung 7
FrankenDerStein HTTP Https Server Bibliothek für Linux und Android gesucht. Netzwerkprogrammierung 7
FrankenDerStein Socket UDP Multithreading für ein Port Netzwerkprogrammierung 2
M Server-Client-System für Browsergame Netzwerkprogrammierung 5
Tobero Java serversocket nicht nur zuganglich für localhost Netzwerkprogrammierung 6
T Brauche Hilfe beim GET-String für HttpURLConnection Netzwerkprogrammierung 4
F Server für Java Applikationen Netzwerkprogrammierung 16
B Webview für Anwendung Netzwerkprogrammierung 7
M Sicheres Login-System für App implementieren Netzwerkprogrammierung 6
J Netty umsetzung für ein Protokoll Netzwerkprogrammierung 1
J ERM für kleine Verwaltungsdatenbank Netzwerkprogrammierung 2
H Machbarkeitsfrage: TCP/IP Client (z.B. Netty) für Java Web Applcation Netzwerkprogrammierung 1
Messoras Launcher für mein Spiel Netzwerkprogrammierung 7
F Einfaches Gateway für Log-Files Netzwerkprogrammierung 1
P RMI - Neue eigene Instanz für jeden Aufruf auf nicht serialisierbares Objekt - wie? Netzwerkprogrammierung 0
P PPTP Protokoll für JAVA Netzwerkprogrammierung 14
T FTP Wie Notwendigkeit für "rekey" klientenseitig detektieren? Netzwerkprogrammierung 3
S Webserver für Jar File Netzwerkprogrammierung 4
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
V Templates für Java Client rabbitmq Netzwerkprogrammierung 4
M Erreichbar für alle zu sein Netzwerkprogrammierung 9
M Server nur für eine Aufgabe Netzwerkprogrammierung 2
N Selbes URL Objekt für alle Requests nutzen Netzwerkprogrammierung 7
T uberspace.de als (v)root-Ersatz für kleinere Java-Anwendungen? Netzwerkprogrammierung 12
L Proxy für Dateidownload? Netzwerkprogrammierung 3
K HTTP Eigener Http Response für Datei-Download Netzwerkprogrammierung 4
D Socket Leitstelle für Funkspiel Netzwerkprogrammierung 8
F Java-Beispielcode für Zeroconf (ähnlich Apple Bonjour) Netzwerkprogrammierung 7
I HTTP S - Zertifikate+Cockies für Form-basierten Login Netzwerkprogrammierung 2
Ollek Socket Sucher passende Server/Client Lösung für meine Anwendung Netzwerkprogrammierung 2
M Gleicher Port für Senden und Empfangen ? Netzwerkprogrammierung 17
N RMI Einstellungen für "übers Internet" Netzwerkprogrammierung 8
F SSL-Zertifikate für viele Nutzer? Netzwerkprogrammierung 8
K Byte für Byte aus InputStream lesen Netzwerkprogrammierung 5
S wie stell man die classpath für JARs? Netzwerkprogrammierung 3
M ClassLoader für Axis2 setzen Netzwerkprogrammierung 15
M Welches Speicherformat für News-Database?? Netzwerkprogrammierung 2
Shoox VPN-Verbindung für Datenbankzugriff Netzwerkprogrammierung 2
P Proxy für Anwendung setzten Netzwerkprogrammierung 3
T Bezeichner "end of line" für die Funktion readline Netzwerkprogrammierung 5
A DataGramsocket Übertragungsproblem im Internet (IPs für Voip) Netzwerkprogrammierung 5
E Userliste für Chat Applet Netzwerkprogrammierung 4
S HTTP Kleines Programm für den Routerneustart Netzwerkprogrammierung 3
L Zeitspanne für erneutes senden Netzwerkprogrammierung 16
L Socket Chat Server für mehrere Clients Netzwerkprogrammierung 7
F Netzwerkprogrammierung für Anfänger Netzwerkprogrammierung 2
J Framework/ Muster für Chat-ähnliches Programm gesucht Netzwerkprogrammierung 2
B Variablen ausrichten für Übertragung Netzwerkprogrammierung 2
D FTP Pfadangabe für ftp-upload funktioniert nicht Netzwerkprogrammierung 5
K Getrennte Rechner für RMI-Server/RMI-Registry, bzw. Alternativen? Netzwerkprogrammierung 5
dayaftereh HTTPCleint und HTMLparser für hTTpBot Netzwerkprogrammierung 2
E Socket Client-Applikation mit GUI für Internet IO-Platine Netzwerkprogrammierung 2
0din Grundlage für Bluetooth Netzwerkprogrammierung 5
N "Jungfernflug" der Socketprogrammierung für ein Mühlespiel Netzwerkprogrammierung 8
F Empfehlung für embedded Webserver Netzwerkprogrammierung 10
W Bibliothek für Certificate Management Protocol (CMP) Netzwerkprogrammierung 3
O Client/Server für Ticker Netzwerkprogrammierung 2
J Stubs für SOAP-Webservice generieren. Ich bekomme es einfach nicht hin... Netzwerkprogrammierung 3
dayaftereh Bester Stream für ein Spiel? Netzwerkprogrammierung 15
data89 Sockets: ein alter Hut - für Euch - für mich nicht! Netzwerkprogrammierung 10
G FileDialog für FTP Client Netzwerkprogrammierung 2
P Welches Protokoll für RMI verwenden? Netzwerkprogrammierung 10
H RCON Tool für Gameserver Netzwerkprogrammierung 11
A Wichtig für einen Chat? Netzwerkprogrammierung 4
D Was für Verbindungen mit Socket möglich? Netzwerkprogrammierung 2
S Realisierung eines Netzwerkcodes für ein Strategiespiel Netzwerkprogrammierung 7
G Datagram-Sockets für UDP-Kommunikation Netzwerkprogrammierung 2
W Was für ein Stream soll ich verwenden? Netzwerkprogrammierung 8
A Rezept für Webservices Netzwerkprogrammierung 5
I unc pfad für die klasse file? Netzwerkprogrammierung 4
P eine BufferedReader für alles ankommende Netzwerkprogrammierung 2
T Filter für Input UND OutputStream Netzwerkprogrammierung 4
T Welches Netzwerk ist am bestern für. Netzwerkprogrammierung 2
G server für mein spiel. Netzwerkprogrammierung 5
M Log In Programm für Seiten Netzwerkprogrammierung 2
G Netzwerkprogrammierung für spiele Netzwerkprogrammierung 2
A IRC-Server für das lokale Netzwerk? Netzwerkprogrammierung 12
C Einfacher Filedownload mit Sockets geht nicht für pdffiles Netzwerkprogrammierung 16
S Server für Internetspiel Netzwerkprogrammierung 2
G Objecte für Kommunikation nutzen Netzwerkprogrammierung 2
J Java Programm für Upload von Dateien per HTTP Netzwerkprogrammierung 7
S Voreinstellungen für JavaMail Netzwerkprogrammierung 2
S Idee für Projekt auf Agentenbasis Netzwerkprogrammierung 8
S Suche API für einfachen HTTP-Zugriff. Netzwerkprogrammierung 17
G benötige Beispiel für parallel ablaufende Threads Netzwerkprogrammierung 3
M RMI - Ein Objekt für Alle? Netzwerkprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben