这几个例子偏向于libpcap的基本使用,还需要了解以下网络协议格式的分析。
1 获取网卡名称
#include <pcap.h>
#include <stdio.h>
int main()
{
char errbuf[PCAP_ERRBUF_SIZE], *device;
device = pcap_lookupdev(errbuf);
if(device)
{
printf("Success: device: %s\n",device);
}
else
{
printf("Error: %s\n",errbuf);
}
return 0;
}
2 使用pcap_next 获取数据包
#include <pcap.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main()
{
char errbuf[PCAP_ERRBUF_SIZE], *devStr;
devStr = pcap_lookupdev(errbuf);
if(devStr)
{
printf("Success: device: %s\n",devStr);
}
else
{
printf("error: %s\n",errbuf);
exit(1);
}
//pcap_t *device = pcap_open_live(devStr, 65535,1, 5* 1000 , errbuf);
pcap_t *device