パケットモニタリングツールの作り⽅方 #2
#include
!
char errmsg[PCAP_̲ERRBUF_̲SIZE]
const char expression[] = “tcp”;
struct bpf_̲program bpf;
!
pcap = pcap_̲create(“en0”, errmsg);
pcap_̲set_̲promisc(pcap, 1);
pcap_̲activate(pcap);
pcap_̲compile(pcap, &bpf, expression, 0, 0);
pcap_̲setfilter(pcap, &bpf);
pcap_̲freecode(&bpf);
!
pcap_̲loop(pcap, -‐‑‒1, callback, NULL);
!
pcap_̲close(pcap);
!
!
!
// フィルタ構⽂文
!
!
// 新しいpcapハンドルを作成
!
!
// フィルタ構⽂文をコンパイル
// コンパイル済みのフィルタをハンドルに適⽤用
!
!
// コールバック関数を登録してキャプチャ開始