sniffer sieciowy

0

Witam. Chcę napisać sobie sniffer sieciowy, który będzie działał podobnie do WireShark czyli będzie monitorował cały ruch w sieci na danym interfejsie sieciowym. Czy aby tego dokonać muszę tworzyć socket dla każdego protokołu osobno i w wątkach je nasłuchiwać, czy może istnieje inny sposób na to? A czy warto zastosować gotową bibliotekę pcacp? Ja bym jednak wolał napisać tego sniffera samemu więc bardzo proszę o pomoc.

0

Tu masz trochę o WinPcap w porównaniu do socketów:
http://stackoverflow.com/questions/1556772/sockets-vs-winpcap

Nie możesz nie używać jakiegoś pcapa, bo to pcap właśnie daje ci dostęp do tych danych. Pod Windowsem używamy WinPcap.

Pomysł z socketami jest poroniony... Zbierasz cały ruch sieciowy i filtrujesz to, co cię interesuje. W c++ to jest jakieś ~50 linijek kodu.

0

A może firewalla od razu? Pisanie tego samodzielnie jest bardzo trudne, ale jak się ma bibliotekę taką jak WinPKFilter:
http://www.ntkernel.com/wpfk-help/whatis.htm
to sprawa staje się o wiele łatwiejsza. Jest darmowa do użytku niekomercyjnego.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.