抓包函数

       pcap_next_ex, pcap_next 抓包

#include <pcap/pcap.h>

int pcap_next_ex(pcap_t *p, struct pcap_pkthdr **pkt_header,

               const u_char **pkt_data);

       const u_char *pcap_next(pcap_t *p, struct pcap_pkthdr *h);

pcap_next_ex()从网卡上读包,成功获取,则參数pkt_header指向一段内存,该内存是关于包的一些信息,參数pkt_data指向抓到的数据报文

       pcap_next()抓包(类似抓包函数pcap_dispatch,指定參数cnt为1),返回一个无符号指针指向抓取到的数据。參数h为包的一些基本信息

     

返回值:pcap_next_ex()

 返回值1  成功抓取到包

 返回值0  表示抓包超时

        返回值-1 抓包出错。可调用 pcap_geterr()或者pcap_perror()来调试出错信息

        返回值-2 文件里包已经读取完成

        pcap_next()

        成功则返回指向数据包的指针

        出错则返回控指针,抓包出错,从网卡上抓不到包(包由于过滤条件都被丢弃了。超时了,抓包句柄指向的网卡不支持堵塞模式并且没有不论什么包经过该网卡)。在文件里没有包,没有有效地方法来推断该函数出错的原因

抓包函数-pcap_next的更多相关文章

  1. python抓包截取http记录日志

    #!/usr/bin/python import pcap import dpkt import re   def main(): pc=pcap.pcap(name="eth1" ...

  2. linux-pcap 抓包程序框架

    转:http://blog.chinaunix.net/uid-21556133-id-120228.html libpcap详解 2010-12-01 22:07 libpcap(Packet Ca ...

  3. PHP中使用CURL请求页面,使用fiddler进行抓包

    在PHP中使用CURL访问页面: <?php $ch = curl_init('http://www.baidu.com'); curl_setopt($ch, CURLOPT_RETURNTR ...

  4. winpcap抓包原理

    winpcap抓包原理 WinPcap 是由伯克利分组捕获库派生而来的分组捕获库,它是在Windows 操作平台上来实现对底层包的截取过滤.WinPcap 是 BPF 模型和 Libpcap 函数库在 ...

  5. 使用winpcap多线程抓包,以及简单的分析数据包

    刚开始使用winpcap数据包的时候,我在抓包的时候使用了 pcap_loop(adhandle, 0, packet_handler, NULL); 这个回调函数进行抓包.同时在回调函数中分析IP地 ...

  6. 抓包分析SSL/TLS连接建立过程【总结】

    1.前言 最近在倒腾SSL方面的项目,之前只是虽然对SSL了解过,但是不够深入,正好有机会,认真学习一下.开始了解SSL的是从https开始的,自从百度支持https以后,如今全站https的趋势越来 ...

  7. tcpdump抓包命令

    本文转自 : http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html http://www.itshouce.com.cn/l ...

  8. 使用RawSocket进行网络抓包

    aw socket,即原始套接字,可以接收本机网卡上的数据帧或者数据包,对与监听网络的流量和分析是很有作用的,一共可以有3种方式创建这种socket. 中文名 原始套接字 外文名 RAW SOCKET ...

  9. ios透明代理抓包

    之前接到一些ios测试的时候,一些应用往往由于这样那样的原因(比如自实现的发包函数)导致直接使用本地ios系统的代理很难将数据代理到主机的burp或findler中,本文提供了一种解决该问题的途径 原 ...

随机推荐

  1. python的模块导入

    单个文件导入:导入的模块可以是一个py文件(放置在当前文件的同级目录.默认路径等) 导入:import 模块名 使用:模块名.函数名 导入:from 模块名 import * 使用:函数名 ----- ...

  2. QlikSense系列(4)——QlikSense管理

    QlikSense管理主要通过QMC界面,在安装成功后,首先需要导入用户,QlikSense本身不能创建和验证用户,只能借助第三方系统, 笔者只使用过Windows账户和AD域用户: 1.Window ...

  3. C#中DataSet中的relation

    //关系定义的方法是 DataRelation 变量名 = “DataSet对象”.Relations.Add("关系名",DataSet对象.主表.列名 , DataSet对象. ...

  4. 如何参加topcoder

    1.注册账号 2.安装java运行环境 3.下载客户端 4.提示:应用程序已被java安全阻止:控制面板里找到java,将topcoder.com添加到安全列表 5.运行客户端

  5. LeetCode 287. Find the Duplicate Number (python 判断环,时间复杂度O(n))

    LeetCode 287. Find the Duplicate Number 暴力解法 时间 O(nlog(n)),空间O(n),按题目中Note"只用O(1)的空间",照理是过 ...

  6. MFC常用控件之滚动条

    近期学习了鸡啄米大神的博客,对其中的一些知识点做了一些自己的总结.不过,博客内容大部分来自鸡啄米.因此,这个博客算是转载博客,只是加了一些我自己的理解而已.若想学习鸡啄米大神的博客总结,请点击连接:h ...

  7. VS 在代码中括号总是跟着类型后面

    if (OK.Text.Contains("运费")) {// 像这样子,这个大括号不是直接在IF下,而是跟在后面 工具-->选项-->文本编辑器-->C# -- ...

  8. 1 ERP管理系统概念

    1 ERP管理系统概念 一.ERP是什么? ERP是企业资源计划(Enterpise Resource Planning)的简称,蕴含现代企业管理理念,其核心是在制造资源计划基础上进一步发展而成的面向 ...

  9. 软件的描述x

    1)文档描述: 2)模型描述: 3)架构描述: 4)代码描述:

  10. linux 性能分析与优化

    一.影响Linux服务器性能的因素 1.操作系统级 (CPU 内存 磁盘I/O性能 网络带宽) 2.程序应用级 二.系统性能评估标准   好  坏 极差 cpu user% +sys% <70% ...