【Winpcap新手】使用Winpcap编程,无法捕获数据包

陆羽_ 2014-04-03 02:28:30
最近在学习使用Winpcap编程,使用的参考资料是《网络安全开发包详解》(刘文涛),其中有一个例子,是捕获网络上所有的数据包。我按照书上的代码编下来,调试运行,没有错误,但是无法捕获到任何内容,所以想请各位大神帮忙,感激不尽
完整代码:http://blog.csdn.net/u014527323/article/details/22868641

#include<pcap.h>


/******* 主函数 *********/
void main()
{

pcap_t* pcap_handle; //WinPcap句柄
char error_content[PCAP_ERRBUF_SIZE]; //存储错误信息
char *net_interface; //网络接口
struct bpf_program bpf_filter; //BPF过滤规则
char bpf_filter_string[] = ""; //活驴规则字符串
bpf_int32 net_mask; //掩码
bpf_int32 net_ip; //网络地址
net_interface = pcap_lookupdev(error_content);//获得可用网络接口
pcap_lookupnet(net_interface,&net_ip,&net_mask,error_content); //获得网络地址和掩码地址
pcap_handle = pcap_open_live(net_interface,BUFSIZ,1,1,error_content); //打开网络接口
pcap_compile(pcap_handle,&bpf_filter,bpf_filter_string,0,net_ip); //编译BPF过滤规则
if(pcap_datalink(pcap_handle)!=DLT_EN10MB)
return;

pcap_loop(pcap_handle,-1,(pcap_handler)ethernet_protocol_packet_callback,NULL);
//注册回调函数,循环捕获网络数据包,一用回调函数来处理每个数据包
pcap_close(pcap_handle);
//关闭WinPcap操作
}
...全文
248 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
_船长_ 2014-04-03
  • 打赏
  • 举报
回复
编译完BPF过滤器,还要设置过滤器的,调用一下pcap_setfilter(),还有那个BPF规则字符串可以是空吗,这个我记不太清了

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧