2.2 现在的程序(C++)
文件名p.cxx
#ifdef __cplusplus
extern ""C"" {
#endif
#include
#ifdef __cplusplus
}
#endif
void printer(u_char * user, const struct pcap_pkthdr * h, const u_char * p)
{
printf(""I get one packet! "");
/* 哈哈,我都想喝一杯庆祝一下了! */
}
#define DEFAULT_SNAPLEN 68
/* 别问我为什么是68,我从tcpdump看来的 */
int main()
{
char ebuf[PCAP_ERRBUF_SIZE];
char *device = pcap_lookupdev(ebuf);
bpf_u_int32 localnet, netmask;
pcap_lookupnet(device, &localnet, &netmask, ebuf);
printf(""%u.%u.%u.%u"", localnet&0xff, localnet>>8&0xff,
localnet>>16&0xff, localnet>>24&0xff);
printf("":%d.%d.%d.%d "", netmask&0xff, netmask>>8&0xff,
netmask>>16&0xff, netmask>>24&
Libpcap入门3
本文介绍了如何使用C++和libpcap库编写一个简单的网络包捕获程序。首先通过pcap_lookupdev获取设备名称,然后用pcap_open_live打开设备,设置过滤器并开始捕获。程序会打印接收到的包的数量和被丢弃的包数量,演示了基本的网络监控功能。
摘要由CSDN通过智能技术生成