Fange CDP pakker med C++

Tags:    c++

Hej forum,

Jeg har fået til opgave at lave et program der kan fange de CDP (Cisco Discovery Protocol) pakker som f.eks. en Cisco switch udsender som broadcast på netværket.

Jeg har dog ingen ide om hvor jeg skal starte.

Problemet er at jeg kun må benytte sockets eller lign. da det skal kunne portes fra Windows til Linux, så derfor kan jeg ikke benytte WinPCAP som f.eks. Ethereal gør.

Ethereal kan fange CDP pakkerne, og kan analysere dem, det skal mit program også kunne gøre, men som sagt, uden brug af WinPCAP.

Ethereal udskriver følgende om en fanget CDP pakke (link til txt fil, da der er meget tekst):

http://www.futterama.dk/diverse/cdp.txt


Jeg håber I kan hjælpe ;)



Indlæg senest redigeret d. 14.08.2006 08:45 af Bruger #6896
3 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
WinPCAP = libpcap portet fra Linux, så jow, WinPCAP kan bruges hvis du orker en smule porting :).



WinPCAP = libpcap portet fra Linux, så jow, WinPCAP kan bruges hvis du orker en smule porting :).

Det orker jeg ikke :roll:

Jeg tænkte lidt i retning af noget generisk socket halløj, men som sagt, jeg er lidt lost.

Ifølge winpcap.org:

"WinPcap consists of a driver, that extends the operating system to provide low-level network access, and a library that is used to easily access the low-level network layers. This library also contains the Windows version of the well known libpcap Unix API."

Dvs. man ligefrem er nødt til at udvide styresystemets funktionalitet for at kunne opfange pakker på de nederste lag i OSI-modellen. Jeg er screwed :O



Indlæg senest redigeret d. 14.08.2006 14:45 af Bruger #6896
Ideen med libpcap (og WinPCAP) er netop at det skal være let at portere til forskellige platforme.

Du kan naturligvis godt kommen uden om libpcap, men det er meget besværtligt, bl.a fordi det gøres forskellligt på forskellige platforme. Hvis du vil vide hvordan, så find sourcen til pcap og studer den.



t