一般涉及到网络编程,我们会用上层的socket相关API进行,但有些时候我们需要从底层进行抓包,在Windows上,我们可以用WinPcap来做这件事。

官网地址:https://www.winpcap.org/install/default.htm

首先在上面圈中的两个地方分别下载安装包和开发包。

然后先安装(注意这个是必须先做的,不然哪怕运行代码也会失败),安装一路next就行了,里面有一个勾选项是问要不要自动打开WinPcap驱动的,记得勾选上(默认就是这样的),不要手贱点掉,不然要自己去开(不知道怎么开),否则运行代码会找不到网络设备。

做完这些解压开发包,会看到里面自带有例子工程,直接用VS2017升级后打开即可(可能需要换Windows的sdk版本)。

比如检测网络设备的代码存放在“E:\winpcap\WpdPack_4_1_2\WpdPack\Examples-pcap\basic_dump_ex”这个路径下,用VS打开之后将其设置为启动项编译就能看到自己的网络设备,并进行监听。比如本人有两张网卡则会看到如下的设备列表:

如果只有一张网卡则会直接输出监听的结果。

具体的代码实现参照示例就行了,写的很好,才100左右行,无需要本人再冗述。

//忽视老接口安全警告
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif#include "pcap.h"int main()
{pcap_t *adhandle;//传感器对象句柄int res;//返回值char errbuf[PCAP_ERRBUF_SIZE];//错误信息struct tm *ltime;char timestr[16];struct pcap_pkthdr *header;const u_char *pkt_data;time_t local_tv_sec;char drivename[100] = "\\Device\\NPF_{5279D3EA-C863-485E-A1EA-5D1A18A85734}";//打开抓包器if ((adhandle = pcap_open_live(drivename,65536,1,1000,errbuf)) == NULL){printf("网络打开错误!请用专用软件查看\n");return -1;}//获得包数据while ((res = pcap_next_ex(adhandle, &header, &pkt_data)) >= 0) {if (res == 0)continue;}if (res == -1) {printf("Error reading the packets: %s\n", pcap_geterr(adhandle));return -1;}pcap_close(adhandle);return 0;
}

VS2017 WinPcap的配置及简单的使用demo相关推荐

  1. asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程...

    最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...

  2. 转自:拜小白教你OpenCV3.2.0+VS2017开发环境配置

    拜小白教你OpenCV3.2.0+VS2017开发环境配置 本文转载自<拜小白教你OpenCV3.2.0+VS2017开发环境配置>.转载链接. https://blog.csdn.net ...

  3. Solr配置与简单Demo[转]

    Solr配置与简单Demo 简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目.它的官方网址在http://lucene.apache.org/sol ...

  4. ssdb主从及双主模型配置和简单管理

    ssdb主从及双主模型配置和简单管理 levelDB是一个key->value 的数据存储库,其只能在本地保存数据,支持持久化,并且支持保存非常大的数据,单机redis在保存较大数据的时候数十G ...

  5. php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码

    <Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...

  6. centos 重启网卡_CentOS6 网络管理之网卡配置及简单路由设置

    CentOS6中关于网络配置的命令有很多,本文将介绍几个平时最长用的几个命令,以及网卡IP地址的配置和简单路由配置. 1.经常使用的查看IP地址命令为 ifconfig,不跟参数的情况下默认查看所有已 ...

  7. 使用 Caddy 替代 Nginx,全站升级 https,配置更加简单

    使用 Caddy 替代 Nginx,全站升级 https,配置更加简单 Caddy 是什么? Caddy 是一个多功能的 HTTP web服务器,并且使用Let's Encrypt提供的免费证书,自动 ...

  8. mysql8.0导入备份_mysql8.0.20配合binlog2sql的配置和简单备份恢复的步骤详解

    第一步 安装 1.安装MySQL 2.安装Python3 [root@localhost /]#yum install python3 3.下载binlog2sql文件到本地(文件在百度云盘) [ro ...

  9. SpringCloud工作笔记049---nginx的安装及配置为简单的文件服务器

    这个可以在项目中做个简单的文件服务器用,如果是权限这块的,可以把权限设计在系统中,有权限的才能访问 某个文件,然后把nginx文件服务器,放到内网上,外网不可访问 ------------------ ...

最新文章

  1. 图像处理分类、一般流程与算法
  2. 大神们请看python日期是这样转换的
  3. Spring中的AOP在Advice方法中获取目标方法的参
  4. 塔菲尔曲线斜率的大小_分段函数函数值(自变量)大小(范围)的六种题型
  5. innodb_locks_unsafe_for_binlog分析
  6. C# 默认接口方法更新完成,很多细节问题尚待解决
  7. Unix网络编程(六)高级I/O技术之复用技术 select
  8. 盖茨每一秒能赚多少钱,他现在最担心的是什么?
  9. 最小二乘支持向量机的分析与改进及Python实现
  10. Java HashMap原理
  11. mysql查询一张表中一共有多少条数据
  12. 效果实现JS实现飞雪飘飘的效果
  13. 采购订单模板_金蝶KIS商贸版(采购模块)常见问题汇总
  14. 【C语言程序】带你用17行代码编译一个C语言数字雨
  15. 【IoT】 产品设计:结构设计之PCB板框图设计
  16. 网页打开软件显示无法连接服务器,Safari 浏览器无法打开网页怎么办
  17. Ubuntu16.04中好用的软件(持续更新)
  18. python3贴吧_python3 百度贴吧 自动签到
  19. 电脑自动同步服务器时间bat,关于电脑时间自动同步校准方法
  20. angularjs2大漠穷秋视频笔记整理

热门文章

  1. vue中实现商品购物车全选反选
  2. if(i),if(!i)和while(i),while(!i)的理解
  3. 卓越人生奥秘:成就事业者十大必备素质
  4. 几个好看的vscode主题,必须记下来
  5. 2017年对口招生c语言及答案,2017年对口升学计算机专业试题(含答案)
  6. 女老板让男员工陪同出差咋办?切记“做三不做四”,莫被弃用
  7. 解决Qt5.8加载qt_zh_CN.qm之后QMessageBox仍显示英文的问题
  8. Navicat:Access violation at address xxxxxxxxx in module ‘navicat.exe‘.Read of address xxxxxx
  9. 管理-code revice
  10. yxy小蒟蒻的201126总结