2016-08-03 36 views
0

私はpcapファイルを生成できるC++プログラムを持っています。しかし、私は記録されたフレームに追加情報を埋め込みたいと思います。より新しいフォーマットのpcapngでは、フレームに任意のコメントを追加することができます。私はまた​​がpcapngファイルを生成できることを理解していますが、参考文献、チュートリアル、または例は見つかりません。私のニーズは非常にシンプルです:私はちょうどpcapngファイルを開いて、それからパケットをそれにダンプし、最後に閉じなければなりません。どこから始めるべきなのか、参考になっていますか?C++プログラムでpcapngファイルを生成

答えて

1

いくつかの試行錯誤の後とヘッダファイルを読み込み、私はこのテストスニペットを思い付いた:私はそれが良いコードとは思わないが、ちょうど私のために動作している

#include <sys/time.h> 
#include <string.h> 
#include <wiretap/wtap.h> 

int main() { 

    int err; 
    wtap_dumper *dumper = wtap_dump_open_ng("test.pcapng", WTAP_FILE_TYPE_SUBTYPE_PCAPNG, WTAP_ENCAP_ETHERNET, 65535, 1, NULL, NULL, NULL, &err); 

    char *packet = "helloworld"; 
    char *err_info; 
    struct wtap_pkthdr header; 
    wtap_phdr_init(&header); 
    header.caplen = strlen(packet); 
    header.len = strlen(packet); 
    gettimeofday(&header.ts, NULL); 
    header.opt_comment = "how are you?"; 
    wtap_dump(dumper, &header, packet, &err, &err_info); 
    wtap_phdr_cleanup(&header); 

    wtap_dump_close(dumper, &err); 

    return 0; 

} 

(もちろん、無効なパケットを生成します)。また、現時点ではエラーチェックはありません。

でコンパイルします。

gcc -o test `pkg-config --cflags --libs wireshark` -lwiretap test.c 
関連する問題