#include #include #include #include "pktlib.h" #include "pktbuf.h" #include "pcapng.h" int main(int argc, char *argv[]) { pktif_t pktif; pktbuf_t pktbuf; int i; argc--; argv++; for (i = 0; i < argc; i++) { pktif = pktif_open(argv[i], 0, sizeof(int)); pkt_pcapng_write(stdout, NULL, 0, pktif_get_linktype(pktif), 0, NULL, 0, pktif_get_name(pktif)); /* pcapng出力 */ *(int *)pktif_get_option(pktif) = i; } while (1) { pktif = pktlib_iflist_select(-1); /* 複数インターフェースで待ち受け */ if (pktif == NULL) continue; pktbuf = pktbuf_recv(pktif, 0); /* パケットを受信 */ if (pktbuf == NULL) continue; pkt_pcapng_write(stdout, pktbuf_get_header(pktbuf), pktbuf_get_size(pktbuf), DLT_UNDEFINED, pktbuf_get_size(pktbuf), pktbuf_get_time(pktbuf), *(int *)pktif_get_option(pktif), NULL); /* pcapng出力 */ pktbuf_destroy(pktbuf); } return 0; }

AltStyle によって変換されたページ (->オリジナル) /