最近在做基于wincap的网络嗅探器,开始对wincap的嗅探过程有了了解

1.先获取当前主机上的所有网卡设备(如果之前对设备名了如指掌,那可以直接从 第二步 开始)

        if(pcap_findalldevs(&alldevs, errbuf) == -1){fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf);exit(1);}

其中 alldevs 是个 pcap_if 结构体类型的指针,pcap_if结构体具体如下:

struct pcap_if {struct pcap_if *next;char *name;     /* name to hand to "pcap_open_live()" */char *description;    /* textual description of interface, or NULL */struct pcap_addr *addresses;bpf_u_int32 flags;   /* PCAP_IF_ interface flags */
};

2.从alldevs所指向的设备链表中找到想要监听的设备名也就是结构体中 pcap_if 中的name。然后使用下面这个

pcap_t* pcap_open_live (
const char * device,
int snaplen,
int promisc,
int to_ms,
char * ebuf) 

函数打开设备文件,其中返回值 pcap_t 是打开的抓取实例的描述符

        if ((fp = pcap_open_live(d->name,//要抓取的网卡的设备名称65536,  //每次抓取包的长度 1,      //非0即为将网卡设置为混乱模式        1000,   //接收数据的等待时间                 errbuf  //错误存放              )) == NULL){fprintf(stderr,"\nError opening adapter\n");return -1;}

3.获取到了抓取实例的描述符之后,就可以使用函数pcap_next_ex来抓取数据包了

int pcap_next_ex (pcap_t *p,
struct pcap_pkthdr ** pkt_header,
const u_char ** pkt_data
)

其中pkt_header 结构体为:

struct pcap_pkthdr {struct timeval ts;   //时间戳bpf_u_int32 caplen;    //在线抓包转到的长度bpf_u_int32 len; //掉线时抓包的长度
};

其中pkt_data就是数据包,然后分析其中的数据就可以了

wincap的使用总结相关推荐

  1. WinPcap笔记(1):VisualStudio2015配置WinCap

    这里介绍Visual Studio2015配置WinCap环境,Visual Studio2013相同. 首先是下载与安装WinCap,这里不描述.下面是整个的配置过程. 1.新建项目 文件-> ...

  2. WinCap 使用心得

    最近需要设计网络抓包方面的软件,WinCap在这方面还是挺有名气的,于是下载了一个WinCap 4.02做了点研究由于本人一直在用MFC做一些设计,所以这里就MFC下使用WinCap4.02写点心得, ...

  3. WinCap网络开发库入门(转)

    Winpcap是一个强大的网络开发库,可以实现许多功能:获取可用的网络适配器:获取指定适配器信息(比如名称和描述信息):捕获指定网卡的数据封包:发送数据封包:过滤捕获的包以获取特定包等. 文章源地址: ...

  4. wincap问题之二(网卡检测)

    我们一般通过pcap_findalldevs检测计算机上上有多少片网卡,pcap_findalldevs,但是只能检测到启用的网卡,那麽问题来了,第一种情况,pcap_findalldevs调用时网卡 ...

  5. 手动安装wincap方法

    [转载]WinPcap3.1的手动安装方法 文章作者:RIVULET 信息来源:rivulet's blog(www.rivuletblog.bokee.com ) 1,安装需要用到以下文件,Pack ...

  6. Win7 64位下配置Qt5.3和Wincap

      最近在学网络编程,想在windows下用Qt做个网络抓包工具,就要用到WinPcap,而我的电脑的系统是Win7 64位,qt版本是Qt 5.3.1 for Windows 64-bit (VS ...

  7. PDO防注入原理分析以及使用PDO的注意事项 (转)

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

  8. [转]PDO防注入原理分析以及使用PDO的注意事项

    原文:http://zhangxugg-163-com.iteye.com/blog/1835721 好文章不得不转. 我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答 ...

  9. java jpcap 抓包并分析_java利用Jpcap实现抓包

    1.准备工作 Jpcap是一个可以监控当前网络情况的中间件,弥补了java对网络层以下的控制, 可以达到抓包的效果. Jpcap运行需要依赖winCap和Jpcap的dll动态库和Jpcap.jar包 ...

  10. Dynamips/Dynagen模拟CISCO路由环境

    今天将<网络互连技术>--路由,交换与远程访问实训教程的实验书拿出来了看了部门. 搭建了一个基于DYNAGEN的虚拟环境. 归纳一下大约步骤: ~~~~~~~~~~~~~~ 一,在WIND ...

最新文章

  1. iPhone 6c配置和5s相近 4寸屏基本确定
  2. java安全技术-Base64编码与解码
  3. 理解文档对象模型(3)
  4. 内置指令-cloak // 内置指令-once // 内置指令-pre
  5. “金牛智慧城市”APP上线 一键可查找公厕和公园
  6. Angular6笔记之全局组件
  7. 穷爸爸与富爸爸,背后思维的差异
  8. 多线程中使用CheckForIllegalCrossThreadCalls = false访问窗口
  9. sigar取得进程信息
  10. Typora数学公式大全
  11. ADAMS搭建控制系统教程:偏心连杆机构的转速控制
  12. SKLEARN实例:【用随机森林回归填补缺失值】
  13. 吃货必看!全新技术告诉我们未来吃什么
  14. 信息学奥赛一本通|1196:踩方格
  15. Combining Character
  16. 如何整店导出天猫店铺商品主图及详情图
  17. 三、常规Dos命令附图
  18. 关于洛谷哪些题目(入门)
  19. 华为鸿蒙os3.0评测,华为鸿蒙OS威力初显!实测体验比EMUI更好 功耗却更低 惊喜还有很多...
  20. Unity中子弹反弹效果的制作

热门文章

  1. mysql授权用户权限能用正则的形式_mysql创建用户及受权
  2. 致敬柳传志三网合一的佳沃品牌之路
  3. Sql中 update select结合更新
  4. LMS自适应波束形成算法(MATLAB)
  5. i.max6 e9 android系统添加3G模块支持 上
  6. Mex HDU - 4747(递推, 思维)
  7. Android 8.1 MTK平台 强制第三方 APP 横屏(微信、今日头条等)
  8. linux命令sel是什么意思,sel
  9. JavaMail关于使用qq企业邮箱发邮件踩过的坑
  10. 2023华东交通大学计算机考研信息汇总