Thema: Delphi Packets auslesen

Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Packets auslesen

  Alt 4. Aug 2003, 21:24
Du kannst mithilfe von RawSockets Pakete sniffen, aber das taugt nix. Das folgende bezieht sich auf Win2000/XP, wies unter den anderen ist, kann ich dir nicht sagen.
Zunächst kannst du nur eingehende Pakete empfangen, sofern du eine DFÜ-Verbindung nutzt und/oder DHCP für deinen Rechner aktiviert hast.
Außerdem sind die Socket-Apis anscheinend nicht sehr effizient, denn es ist sehr schwer bis unmöglich, alle Pakete zu kriegen. Ich hab das probiert mit einem Programm, das in einem Thread Pakete empfängt und auswertet, und ich bekomme nur sehr wenige Pakete. Vielleicht kriegt man mehr, indem man Paketabruf und Auswertung in unterschiedliche Threads auslagert, aber ich bezweifle dennoch, dass man da einen zufriedenstellenden Anteil der Pakete bekommt.
Die einzigste zufriedenstellende Lösung ist wohl ein eigener NDIS-Treiber, der dann das entsprechende Interface zum PacketCapturing bereitstellt. Es gibt einige Portscanner, die das so machen, und demletzt hab ich auch eine Seite gesehen, auf der solch eine DLL angeboten wird. Leider weiß ich nicht mehr wo, aber so was ließe sich vielleicht finden. Oder halt den Treiber selber schreiben, wenn du das kannst.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat