libpcap流量统计

本文介绍了使用libpcap库进行流量监控的方法。通过定义Ethernet和Ip_header结构体解析数据包,进一步可能需要tcp_header和udp_header。代码可在CSDN下载,编译依赖libpcap和lpthread库,运行需sudo权限。内容参考自http://blog.chinaunix.net。
摘要由CSDN通过智能技术生成
最近老师让写一个流量监控程序,用到了libpcap编程。虽然很简单,但是前期也走了一些弯路。最初是直接从别人博客里面copy的代码,然后运行时就是结果就是不正确。本以为是系统问题,我又装了个双系统。。。
现在我把自己的代码分享出来吧,这些是我自己运行成功的,代码很简单,只是希望能给新人一些借鉴。

首先:我们先得到我们的设备名称,因为之后我们需要根据名称指针来打开我们的设备,得到名称指针的方式如下:
    /*get our device name*/
    char *dev,errbuf[PCAP_ERRBUF_SIZE];
    dev = pcap_lookupdev(errbuf);
    printf("Device: %s\n",dev); /*print our device name*/
如果我们实现已经知道设备名称了,就不用在通过这个方式得到了。

得到名称之后,我们根据名称指针打开我们的设备,这时候我们需要用到的函数是:
/*pcap_t *pcap_open_dev(char*device,int snaplen,int promisc,int to_ms,char*errbuf);*/
device是设备名称,snaplen是pcap将捕获的最大字节数,promisc是混合模式,to_ms是读取时的超时值,单位是毫秒,为0则一直嗅探直到错误发生,errbuf是出错之后信息的储存。
函数的返回值是一个句柄,在下面我们将会使用的到。
    /*open device and sniff
     *pcap_t *pcap_open_dev(char*device,int snaplen,int promisc,int to_ms,char*errbuf);
     *
     */
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值