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.