EN JA
PCAP_STATS(3)
PCAP_STATS(3) FreeBSD Library Functions Manual PCAP_STATS(3)

名称

pcap_stats -キャプチャ (捕獲) 統計を取得する

書式


#include <pcap/pcap.h>


int pcap_stats(pcap_t *p, struct pcap_stat *ps);

解説

pcap_stats() は、2 番目の引数によって指された struct pcap_stat に書き込みます。値は、実行の始まりから呼び出しの時間までのパケットの統計を表します。

pcap_stats() は、``savefiles'' でなく、ライプキャプチャでのみサポートされます。統計は、``savefiles'' に格納されていないので、 ``savefile'' から読み込むとき、統計は、利用可能ではありません。

struct pcap_stat には、次のメンバがあります:

ps_recv
受信されたパケットの数。
ps_drop
パケットが十分速く読み込まれなかったので、それらが到着したとき、オペレーティングシステムのバッファに余地がなかったので、落されたパケットの数。
ps_ifdrop
ネットワークインタフェースまたはそのドライバによって落されたパケットの数

統計は、すべてのプラットフォームで同じように振る舞いません。 ps_recv は、パケットが pcap_setfilter(3) で設定されたどんなフィルタに渡したかどうかにかかわらず、パケットをカウントするかもしれません、またはフィルタに渡されたパケットだけをカウントするかもしれません。また、可能性があっても、なくてもパケットが到着したとき、オペレーティングシステムのバッファに余地がなかったので、落されたパケットをカウントします。 ps_drop は、すべてのプラットフォームで利用可能ではありません。それは、利用可能でないプラットフォームで 0 です。パケットフィルタリングがオペレーティングシステムでなく、 libpcap で行われるなら、フィルタに渡されないパケットをカウントします。 ps_recvps_drop の両方は、可能性があっても、なくてもオペレーティングシステムから読み込まれないパケットをカウントし、したがって、アプリケーションによってまだ見られません。 ps_ifdrop は、可能性があっても、なくても、実装されます。それが 0 であるなら、パケットがインタフェースによって落されないことを意味するか、または統計値が利用可能でないことを意味するかもしれないので、インタフェースがどんなパケットも落さなかったことを指示するように扱われるべきではありません。

戻り値

pcap_stats() は、成功すれば 0 を返し、エラーがあるなら、または p がパケットの統計をサポートしていないなら、-1 を返します。-1 が返されるなら、 pcap_geterr() または pcap_perror() は、取って来るか、またはエラーテキストを表示する引数として p を付けて呼び出されます。

関連項目

pcap(3), pcap_geterr(3)
7 September 2009