Кто-нибудь может предложить хороший класс анализатора пакетов для C ++? - PullRequest
3 голосов
/ 06 декабря 2008

Кто-нибудь может предложить хороший класс анализатора пакетов для c ++? В поисках легко вставляемого класса, который я могу использовать в моей программе на С ++, ничего сложного.

Ответы [ 3 ]

17 голосов
/ 06 декабря 2008

Вы никогда не сможете перехватить сетевой трафик, просто вставив класс в ваш проект. Функциональность захвата пакетов требует поддержки режима ядра, поэтому, как указал Уилл Дин, вам как минимум потребуется, чтобы ваше приложение требовало или установило libpcap / WinPcap.

Большинство современных Unix-подобных дистрибутивов включают libpcap из коробки, и в этом случае вы можете взглянуть на этот очень простой пример: http://www.tcpdump.org/pcap.htm

Если вы используете Windows, вы более или менее самостоятельно, хотя WinPcap программирование очень похоже на программирование на libpcap (что неудивительно, поскольку это порт libpcap для Win32.) SDK может можно найти здесь: http://www.winpcap.org/devel.htm

В любом случае, независимо от операционной системы, вам будет нужен доступ с правами администратора / root для выполнения захвата. Разумеется, простое использование библиотеки для воспроизведения или анализа предварительно захваченных данных не требует особых привилегий.

2 голосов
/ 06 декабря 2008

Вам нужно будет что-то сказать о вашей платформе, поскольку это скорее платформа, чем язык.

Но, если у вас что-то общее, посмотрите на pcap или winpcap.

1 голос
/ 06 декабря 2008

Microsoft Network Monitor имеет API для захвата и анализа пакетов, дополнительную информацию см. В блоге netmon .

...