C++ 在caplen和len中获得巨大价值的winpcap数据包捕获

C++ 在caplen和len中获得巨大价值的winpcap数据包捕获,c++,packet-capture,winpcap,npcap,C++,Packet Capture,Winpcap,Npcap,我正在写一个包捕获程序。 我正在使用npcap并在运行时附加代码和输出。。 问题是打印的caplen和len值是非常大的数字。。有时只有20个,这是不可能的。 代码是npcap附带的简单exmaple代码。 有人能说这里出了问题吗 令人惊讶的是,在wireshark中打开时捕获的文件具有精确的数据包计数,并且数据包也是可读的。。 所以不明白为什么卡普兰和莱恩的号码是错的 Code is : .#ifdef _MSC_VER /* * we do not want the warnings

我正在写一个包捕获程序。 我正在使用npcap并在运行时附加代码和输出。。 问题是打印的caplen和len值是非常大的数字。。有时只有20个,这是不可能的。 代码是npcap附带的简单exmaple代码。 有人能说这里出了问题吗

令人惊讶的是,在wireshark中打开时捕获的文件具有精确的数据包计数,并且数据包也是可读的。。 所以不明白为什么卡普兰和莱恩的号码是错的

Code is : 

.#ifdef _MSC_VER
/*
 * we do not want the warnings about the old deprecated and unsecure CRT functions
 * since these examples can be compiled under *nix as well
 */
.#define _CRT_SECURE_NO_WARNINGS
.#endif

.#include "pcap.h"

/* prototype of the packet handler */
void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data);

int main(int argc, char **argv)
{
    pcap_if_t *alldevs;
    pcap_if_t *d;
    int inum;
    int i=0;
    pcap_t *adhandle;
    char errbuf[PCAP_ERRBUF_SIZE];
    pcap_dumper_t *dumpfile;


    /* Check command line */
    if(argc != 2)
    {
        printf("usage: %s filename", argv[0]);
        return -1;
    }

    /* Retrieve the device list on the local machine */
    if (pcap_findalldevs(&alldevs, errbuf) == -1)
    {
        fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf);
        return 0;
    }

    /* Print the list */
    for(d=alldevs; d; d=d->next)
    {
        printf("%d. %s", ++i, d->name);
        if (d->description)
            printf(" (%s)\n", d->description);
        else
            printf(" (No description available)\n");
    }

    if(i==0)
    {
        printf("\nNo interfaces found! Make sure WinPcap is installed.\n");
        return -1;
    }

    printf("Enter the interface number (1-%d):",i);
    scanf("%d", &inum);

    if(inum < 1 || inum > i)
    {
        printf("\nInterface number out of range.\n");
        /* Free the device list */
        pcap_freealldevs(alldevs);
        return -1;
    }

    /* Jump to the selected adapter */
    for(d=alldevs, i=0; i< inum-1 ;d=d->next, i++);


    /* Open the adapter */
    if ((adhandle= pcap_open_live(d->name,  // name of the device
                             65536,         // portion of the packet to capture.
                                            // 65536 grants that the whole packet will be captured on all the MACs.
                             1,             // promiscuous mode (nonzero means promiscuous)
                             1000,          // read timeout
                             errbuf         // error buffer
                             )) == NULL)
    {
        fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n", d->name);
        /* Free the device list */
        pcap_freealldevs(alldevs);
        return -1;
    }

    /* Open the dump file */
    dumpfile = pcap_dump_open(adhandle, argv[1]);

    if(dumpfile==NULL)
    {
        fprintf(stderr,"\nError opening output file\n");
        return -1;
    }

    printf("\nlistening on %s... Press Ctrl+C to stop...\n", d->description);

    /* At this point, we no longer need the device list. Free it */
    pcap_freealldevs(alldevs);

    /* start the capture */
    pcap_loop(adhandle, 0, packet_handler, (unsigned char *)dumpfile);

    pcap_close(adhandle);
    return 0;
}

int count = 0;
/* Callback function invoked by libpcap for every incoming packet */
void packet_handler(u_char *dumpfile, const struct pcap_pkthdr *header, const u_char *pkt_data)
{

    printf ("\nPacket count is %d", count++);
    /* save the packet on the dump file */
    pcap_dump(dumpfile, header, pkt_data);

    printf("\n\nRecieved Packet Size caplen: %zu", header->caplen); /* Length of header */
    printf("\nRecieved Packet Size just len: %lu\n", header->len); /* Length of header */

}


Output of the program : 


C:\eclipse\w1\tn\Debug>tn pdump
1. \Device\NPF_{3A8147EC-2368-4216-9603-7641E806F7CE} (Realtek PCIe GBE Family Controller)
2. \Device\NPF_{E39C84EC-CB5D-4300-A5C1-C63EDE0B583C} (Microsoft)
3. \Device\NPF_{2F63E116-DEB4-4FE4-9E27-85DCA9E68C5C} (VMware Virtual Ethernet Adapter)
4. \Device\NPF_{996ACB8F-C0AC-4FF3-8E79-B0C849CC9CF1} (MS NDIS 6.0 LoopBack Driver)
5. \Device\NPF_{619BA8D0-363E-4BCB-8739-4537D3FDAD87} (MS NDIS 6.0 LoopBack Driver)
6. \Device\NPF_{E2FB8B54-0E25-498C-975A-32873AC52060} (VMware Virtual Ethernet Adapter)
7. \Device\NPF_{9B17BD4E-E20D-43A3-A8C6-AC8C3C431182} (Microsoft)
Enter the interface number (1-7):2

listening on Microsoft... Press Ctrl+C to stop...

Packet count is 0

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 1

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 2

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 3

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 4

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 5

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 6

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 7

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 8

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 9

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 10

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 11

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 12

Recieved Packet Size caplen: 1342177300
Recieved Packet Size just len: 3632886444

Packet count is 13

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 14

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 15

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 16

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 17

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 18

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 19

Recieved Packet Size caplen: 1161363476
Recieved Packet Size just len: 4294967295

Packet count is 20

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 6160385

Packet count is 21

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 22

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 23

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 24

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 25

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 1970834832

Packet count is 26

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 27

Recieved Packet Size caplen: 4278190100
Recieved Packet Size just len: 4294967295

Packet count is 28

Recieved Packet Size caplen: 16711700
Recieved Packet Size just len: 4294967295

Packet count is 29

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 4294967295

Packet count is 30

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 4294967295

Packet count is 31

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 4294967295

Packet count is 32

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 33

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 34

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 35

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 36

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 2136866817

Packet count is 37

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 38

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 39

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 40

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 41

Recieved Packet Size caplen: 872349716
Recieved Packet Size just len: 3632886444

Packet count is 42

Recieved Packet Size caplen: 872349716
Recieved Packet Size just len: 3632886444

Packet count is 43

Recieved Packet Size caplen: 4281532436
Recieved Packet Size just len: 3632886444

Packet count is 44

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 45

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 46

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 47

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 48

Recieved Packet Size caplen: 4281532436
Recieved Packet Size just len: 3632886444

Packet count is 49

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 50

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 51

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 52

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 53

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 1970834832

Packet count is 54

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 55

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 6160385

Packet count is 56

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 1970834832

Packet count is 57

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 58

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 2136866817

Packet count is 59

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 2136866817

Packet count is 60

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 2136866817

Packet count is 61

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 2136866817

Packet count is 62

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 63

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 64

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 65

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 66

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 67

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 68

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 69

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 70

Recieved Packet Size caplen: 1929379860
Recieved Packet Size just len: 3632886444

Packet count is 71

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 72

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 73

Recieved Packet Size caplen: 5111828
Recieved Packet Size just len: 3632886444

Packet count is 74

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 75

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 76

Recieved Packet Size caplen: 5701652
Recieved Packet Size just len: 3632886444

Packet count is 77

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 78

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 79

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 80

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 81

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 82

Recieved Packet Size caplen: 822083604
Recieved Packet Size just len: 3632886444

Packet count is 83

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 84

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 85

Recieved Packet Size caplen: 1448083476
Recieved Packet Size just len: 3632886444

Packet count is 86

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 87

Recieved Packet Size caplen: 1073741844
Recieved Packet Size just len: 3632886444

Packet count is 88

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 89

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 90

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 91

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 92

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 93

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 94

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 1970834832

Packet count is 95

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 96

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 1970834832

Packet count is 97

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 1970834832

Packet count is 98

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 1970834832

Packet count is 99

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 100

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 1970834832

Packet count is 101

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 1970834832

Packet count is 102

Recieved Packet Size caplen: 872349716
Recieved Packet Size just len: 1970834832

Packet count is 103

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 104

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 1970834832

Packet count is 105

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 106

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 107

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 1970834832

Packet count is 108

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 109

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 3632886444

Packet count is 110

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 1970834832

Packet count is 111

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 112

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 113

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 1970834832

Packet count is 114

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 3632886444

Packet count is 115

Recieved Packet Size caplen: 562102292
Recieved Packet Size just len: 1970834832

Packet count is 116

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 117

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 1970834832

Packet count is 118

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 1970834832

Packet count is 119

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 120

Recieved Packet Size caplen: 4281532436
Recieved Packet Size just len: 3632886444

Packet count is 121

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 1970834832

Packet count is 122

Recieved Packet Size caplen: 872349716
Recieved Packet Size just len: 3632886444

Packet count is 123

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 124

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 125

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 1970834832

Packet count is 126

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 1970834832

Packet count is 127

Recieved Packet Size caplen: 4281532436
Recieved Packet Size just len: 3632886444

Packet count is 128

Recieved Packet Size caplen: 4294901780
Recieved Packet Size just len: 1970834832

Packet count is 129

Recieved Packet Size caplen: 4281532436
Recieved Packet Size just len: 3632886444

Packet count is 130

Recieved Packet Size caplen: 4281532436
Recieved Packet Size just len: 3632886444

Packet count is 131

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 132

Recieved Packet Size caplen: 872349716
Recieved Packet Size just len: 1970834832

Packet count is 133

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 134

Recieved Packet Size caplen: 4281532436
Recieved Packet Size just len: 3632886444

Packet count is 135

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 4294967295

Packet count is 136

Recieved Packet Size caplen: 872349716
Recieved Packet Size just len: 4294967295

Packet count is 137

Recieved Packet Size caplen: 4281532436
Recieved Packet Size just len: 3632886444

Packet count is 138

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 4294967295

Packet count is 139

Recieved Packet Size caplen: 872349716
Recieved Packet Size just len: 4294967295

Packet count is 140

Recieved Packet Size caplen: 4281532436
Recieved Packet Size just len: 4294967295

Packet count is 141

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 142

Recieved Packet Size caplen: 872349716
Recieved Packet Size just len: 4294967295

Packet count is 143

Recieved Packet Size caplen: 4281532436
Recieved Packet Size just len: 4294967295

Packet count is 144

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 4294967295

Packet count is 145

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 146

Recieved Packet Size caplen: 4281532436
Recieved Packet Size just len: 4294967295

Packet count is 147

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 4294967295

Packet count is 148

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 3632886444

Packet count is 149

Recieved Packet Size caplen: 4281532436
Recieved Packet Size just len: 4294967295

Packet count is 150

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 4294967295

Packet count is 151

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 4294967295

Packet count is 152

Recieved Packet Size caplen: 858980372
Recieved Packet Size just len: 4294967295

Packet count is 153

Recieved Packet Size caplen: 872349716
Recieved Packet Size just len: 4294967295

Packet count is 154

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 155

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 156

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 157

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 158

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 159

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 160

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 161

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 162

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 163

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295

Packet count is 164

Recieved Packet Size caplen: 20
Recieved Packet Size just len: 4294967295
代码是:
.#ifdef(硕士学位)
/*
*我们不希望看到关于旧的不推荐使用的和不安全的CRT函数的警告
*因为这些示例也可以在*nix下编译
*/
.#定义_CRT_SECURE_NO_警告
.#endif
.#包括“pcap.h”
/*包处理程序的原型*/
无效数据包处理程序(u_char*param,const struct pcap_pkthdr*头,const u_char*pkt_数据);
int main(int argc,字符**argv)
{
pcap_if_t*所有开发者;
pcap_if_*d;
国际单位制;
int i=0;
pcap_t*adhandle;
字符errbuf[PCAP_errbuf_SIZE];
pcap_转储程序_t*转储文件;
/*检查命令行*/
如果(argc!=2)
{
printf(“用法:%s文件名”,argv[0]);
返回-1;
}
/*检索本地计算机上的设备列表*/
如果(pcap_findalldevs(&alldevs,errbuf)=-1)
{
fprintf(标准,“pcap\u findalldevs中的错误:%s\n”,errbuf);
返回0;
}
/*打印列表*/
对于(d=alldevs;d;d=d->next)
{
printf(“%d.%s”,++i,d->name);
如果(d->说明)
printf((%s)\n),d->description;
其他的
printf(“(无说明)\n”);
}
如果(i==0)
{
printf(“\n未找到任何接口!请确保已安装WinPcap。\n”);
返回-1;
}
printf(“输入接口编号(1-%d):”,i);
scanf(“%d”和“inum”);
如果(inum<1 | | inum>i)
{
printf(“\n接口号超出范围。\n”);
/*释放设备列表*/
pcap_freealldevs(alldevs);
返回-1;
}
/*跳转到所选适配器*/
对于(d=alldevs,i=0;inext,i++);
/*打开适配器*/
如果((adhandle=pcap\u open\u live)(d->name,//设备名称
65536,//要捕获的数据包部分。
//65536授权在所有Mac上捕获整个数据包。
1,//混乱模式(非零表示混乱)
1000,//读取超时
errbuf//错误缓冲区
))==空)
{
fprintf(stderr,“\n无法打开适配器。%s不受WinPcap支持”,d->name);
/*释放设备列表*/
pcap_freealldevs(alldevs);
返回-1;
}
/*打开转储文件*/
dumpfile=pcap_dump_open(adhandle,argv[1]);
if(dumpfile==NULL)
{
fprintf(stderr,“\n打开输出文件时出错\n”);
返回-1;
}
printf(“\n正在%s上登录…按Ctrl+C停止…\n”,d->description);
/*此时,我们不再需要设备列表。请释放它*/
pcap_freealldevs(alldevs);
/*开始捕获*/
pcap_循环(adhandle,0,数据包处理程序,(未签名字符*)转储文件);
pcap_关闭(adhandle);
返回0;
}
整数计数=0;
/*libpcap为每个传入数据包调用的回调函数*/
无效数据包处理程序(u_字符*转储文件,常量结构pcap_pkthdr*头,常量u字符*pkt_数据)
{
printf(“\n数据包计数为%d”,计数++);
/*将数据包保存在转储文件中*/
pcap_转储(转储文件、头文件、pkt_数据);
printf(“\n\n接收的数据包大小caplen:%zu”,头->caplen);/*头的长度*/
printf(“\nReceived Packet Size just len:%lu\n”,header->len);/*header的长度*/
}
程序的输出:
C:\eclipse\w1\tn\Debug>tn pdump
1. \设备\NPF{3A8147EC-2368-4216-9603-7641E806F7CE}(Realtek PCIe GBE系列控制器)
2. \设备\NPF{E39C84EC-CB5D-4300-A5C1-C63EDE0B583C}(微软)
3. \设备\NPF{2F63E116-DEB4-4FE4-9E27-85DCA9E68C5C}(VMware虚拟以太网适配器)
4. \设备\NPF{996ACB8F-C0AC-4FF3-8E79-B0C849CC9CF1}(MS NDIS 6.0环回驱动程序)
5. \设备\NPF{619BA8D0-363E-4BCB-8739-4537D3FDAD87}(MS NDIS 6.0环回驱动程序)
6. \设备\NPF{E2FB8B54-0E25-498C-975A-32873AC52060}(VMware虚拟以太网适配器)
7. \设备\NPF{9B17BD4E-E20D-43A3-A8C6-AC8C3C431182}(微软)
输入接口编号(1-7):2
正在收听Microsoft。。。按Ctrl+C停止。。。
数据包计数为0
接收的数据包大小caplen:4294901780
收到的数据包大小仅为len:3632886444
数据包计数为1
接收的数据包大小caplen:4294901780
收到的数据包大小仅为len:3632886444
数据包计数为2
接收的数据包大小caplen:4294901780
收到的数据包大小仅为len:3632886444
包数是3
接收的数据包大小caplen:4294901780
收到的数据包大小仅为len:3632886444
数据包计数为4
接收的数据包大小caplen:4294901780
收到的数据包大小仅为len:3632886444
包数是5
接收的数据包大小caplen:4294901780
收到的数据包大小仅为len:3632886444
包数是6
接收的数据包大小caplen:4294901780
收到的数据包大小仅为len:3632886444
包数是7
接收的数据包大小caplen:4294901780
收到的数据包大小仅为len:3632886444
包数是8
接收的数据包大小caplen:4294901780
收到的数据包大小仅为len:3632886444
包数是9
接收的数据包大小caplen:4294901780
收到的数据包大小仅为len:3632886444
包数是10
接收的数据包大小caplen:4294901780
收到的数据包大小仅为len:3632886444
包数是11
接收的数据包大小caplen:20
收到的数据包大小仅为len:3632886444
包数是12
接收数据包大小caplen:1342177300
收到的数据包大小仅为len:3632886444
包数是13
R