0

我将以下函数添加到嗅探代码(http://www.tcpdump.org/sniffex.c):

typedef struct pcap_stat mystat;

mystat *mystatp;

/* Put the interface in statstics mode */
if(pcap_stats(handle, mystatp) < 0)
{
    fprintf(stderr,"\nError setting the mode.\n");
    pcap_close(handle);
    /* Free the device list */
    return;
}

Sniffex 代码对我来说工作正常 - 但只要我添加此代码,我就会收到分段错误错误:(

谁能帮帮我?

万分感谢。

4

1 回答 1

2

我相信您忘记为 mystat 分配内存。

试试这个:

typedef struct pcap_stat mystat;

...

mystat actualStat; /* allocate memory for mystat on stack - you can also do it on the heap by malloc-ing */
mystat *mystatp = &actualStat; /* use allocated memory */

/* Put the interface in statistics mode */
if(pcap_stats(handle, mystatp) < 0)
{
    fprintf(stderr,"\nError setting the mode.\n");
    pcap_close(handle);
    /* Free the device list */
    return;
}

在我使用的Pcap.Net 中pcap_stats_ex(),但它可能仅在 WinPcap 上可用,而在 libpcap 上不可用。

于 2010-06-06T20:00:30.357 回答