Libpcap入门3

本文介绍了如何使用C++和libpcap库编写一个简单的网络包捕获程序。首先通过pcap_lookupdev获取设备名称,然后用pcap_open_live打开设备,设置过滤器并开始捕获。程序会打印接收到的包的数量和被丢弃的包数量,演示了基本的网络监控功能。
摘要由CSDN通过智能技术生成

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&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值