Нет
libwireshark не предназначен для использования вне самого Wireshark, и попытка сделать это оставит вас самостоятельно за попытку выяснить, что происходит не так. libwireshark фактически является частью анализатора пакетов Wireshark (называется epan для Ethereal packetanalyzer), который вы можете увидеть в Руководстве разработчика — это не весь Wireshark. Что на самом деле предоставляет libwireshark, так это основной интерфейс для всех встроенных диссекторов протоколов, хуки для плагинов-диссекторов и полный API для анализа пакетов. Он основан на механизме, установленном остальной частью Wireshark для вещей, которые не являются инструментами анализа пакетов напрямую, но позволяют анализаторам выполнять свою работу (например, выделять и освобождать фрагменты памяти, обрабатывать сжатые или зашифрованные данные и т. д.).
Вместо этого напишите диссектор.
Если ваш проект каким-то образом строго анализирует сетевой трафик, вы можете рассмотреть возможность написания диссектора для Wireshark, а не заново изобретать множество колес, которые Wireshark может предоставить вам. Если вам нужно сделать что-то более сложное, например, отслеживать сетевой трафик, а затем запускать другие задачи или отправлять данные самостоятельно, вам, вероятно, лучше использовать tshark
и сценарии оболочки, как вы уже используете (имейте в виду, что вы не должны позволять tshark
работать в любом случае очень долго).
Если вы действительно, действительно хотите использовать libwireshark напрямую, вам нужно каким-то образом решить все ее зависимости (желательно, сделав ее реальной автономной библиотекой) и предусмотреть предположения, которые она делает о Wireshark ( или tshark) на самом деле работает. Весь код libwireshark хорошо организован, просто он состоит из всего каталога epan под деревом исходников Wireshark и выложен в соответствии с соглашениями, установленными еще тогда, когда Wireshark еще был Ethereal. Документация для каждой функции предоставляется в файлах заголовков, когда она общедоступна, и в каждом случае более глубоко в исходных файлах. Также имейте в виду, что README .developer, распространяемый с имеющейся у вас версией исходного кода, — хорошее место, чтобы получить несколько советов (и вы также можете прочитать все файлы README.*, если хотите выполнить эту задачу).
person
multipleinterfaces
schedule
27.04.2012