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