WinPcap网络编程入门——0. 环境配置及系列介绍

article/2025/9/26 16:55:24

WinPcap网络编程入门——0. 环境配置及系列介绍

系列教程章节直达:
Winpcap网络编程入门——1. 获取设备列表;


说明:本教程适用于网络编程开发人员入门,将从底层分析 WinPcap 的执行过程,结合一些实际用例来学习 WinPcap网络编程。

Pcap 技术是网络底层开发的重要工具之一,允许应用程序避开成熟的网络协议,直接处理网络数据包。Pcap 技术直接对进出网卡的原始数据包进行处理,即用户自己对要传输的网络数据按照协议的首部格式进行封装,用户自己完成协议需要封装的内容,操作的是原始数据包套接字。

套接字是操作系统提供给应用程序的编程接口,经过了操作系统处理(网络协议处理),提供的数据是剥离了网络协议的网络数据。

WinPcap 是 Windows 平台下在数据链路层进行网络数据捕获和网络分析的开源库,它避开了操作系统对网络数据的隐藏,直接对数据链路层的数据分组进行处理,也就是原始的网络数据进行操作,可以方便地进行网络数据的封装和处理,它提供的功能主要有:

  • 捕获经由主机的数据包
  • 根据应用程序提供的规则过滤数据包
  • 发送原始数据包到网络上
  • 统计和收集网络流量信息

关于 WinPcap 的介绍就到这里,需要了解更多可以去官网(https://www.winpcap.org/)


1. WinPcap 资料获取

使用 WinPcap 必须安装其软件以及获取对应的 DLL、底层库:

  • WinPcap4.1 安装包:链接:https://pan.baidu.com/s/1q5s06B1nhXwoMr7do_FUGg 提取码:joeh(安装后需重启)
  • WpdPack4.1 库:链接:https://pan.baidu.com/s/1xlV-jMpxMaQhHBPrhIAEzw 提取码:4oea (直接放到你的编程通用位置即可)
  • WinPcap 中文技术文档:链接:https://pan.baidu.com/s/16UDUnpwEpK6MjBcGZa–0A 提取码:8kr5

2. WinPcap 环境配置

1. VC++6.0 环境配置

  1. 在 vc++6.0 中设定 Include 目录: 打开 vc++6.0 菜单,Tools -> Option -> Directories,在 include files 中添加 …wpdpackInclude 目录(就是你存放 WpdPack4.1 库的文件夹下的 include 文件夹);
  2. 在 vc++6.0 中设定 Library 目录: 在 Library files 中添加 …wpdpackLib 目录;
  3. 在 VC++的新建工程中,在 Project -> settings -> Link,在 Object/library modules 中加上 wpcap.lib。

2. vs2022 环境配置(其它版本基本相同)

  1. 新建一个空项目并添加一个空的源文件;

  2. 点击菜单栏 项目 -> 项目属性
    项目属性

  3. 选择 C/C++ -> 预处理器,在预处理器定义中添加 WPCAP 和 HAVE_REMOTE 两个宏定义,然后点击 应用;
    预处理器
    宏定义添加

  4. 选择 链接器 -> 输入,在附加依赖项添加 wpcap.lib 、 ws2_32.lib 、 Packet.lib 三个库,然后点击应用;
    输入链接器
    附加依赖项

  5. 选择 VC++ 目录,添加 WpdPack 文件夹中的包含目录( include 目录),然后点击应用;
    包含目录1
    包含目录2
    包含目录3

  6. 选择 VC++ 目录,添加 WpdPack 文件夹中的库目录( Lib 目录),然后点击应用;
    库路面
    库目录3
    库目录4

  7. 选择 C/C++ -> 语言,将 符合模式 设置为 否,最后点击确定即可;
    符合模式

  8. 将解决方案平台设置为 x64
    jiejuefang

  9. vs2022 的环境配置就到这里结束,注意,本教程使用C语言开发,所以需要在项目中新建 .c 文件而不是 .cpp 文件(如果无法直接新建,可以先新建 .cpp 文件,然后修改文件后缀为 .c 即可)

  10. 测试配置是否完成,复制以下代码到项目中运行,注意是 .c 文件不是 .cpp 文件,否则 vs 会报错!

#define WIN32      // 必须加这条,否则vs不会自动识别
#include <stdio.h>
#include <pcap.h>
#pragma comment(lib, "wpcap.lib")main()
{pcap_if_t* alldevs, * d;int i = 0;char errbuf[PCAP_ERRBUF_SIZE];if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL,&alldevs, errbuf) == -1){fprintf(stderr, "Error in pcap_findalldevs_ex: %s
",errbuf);exit(1);}for (d = alldevs; d != NULL; d = d->next){printf("%d.%s", ++i, d->name);if (d->description){printf("(%s)
", d->description);}else {printf("(No description available)
");}}if (i == 0){printf("
No interfaces found! Make sure Winpcap is installed.
");return;}// 释放设备pcap_freealldevs(alldevs);
}

运行之后就会显示出已获取到的设备列表了,至此,环境配置就完成了!
接下来我们将学习如何获取到设备,点击跳转下一节。


系列教程章节直达:
Winpcap网络编程入门——1. 获取设备列表;


http://chatgpt.dhexx.cn/article/FnsLvuqk.shtml

相关文章

Java核心类库之(网络编程:网络编程入门、UDP通信程序、TCP通信程序)

目录 1 网络编程入门1.1 网络编程概述1.2 网络编程三要素1.3 IP地址1.4 InetAddress的使用1.5 端口1.6 协议 2 UDP通信程序2.1 UDP通信原理2.2 UDP发送数据2.3 UDP接收数据2.4 范例 3 TCP通信程序3.1 TCP通信原理3.2 TCP发送数据3.3 TCP接收数据3.4 案例3.4.1 练习一&#xff1…

Java网络编程入门(软件结构、网络通信协议、网络编程三要素)

文章目录 &#x1f415;软件结构&#x1f436;网络通信协议&#x1f981;协议分类&#x1f405;网络编程三要素&#x1f406;协议&#x1f40e;IP地址&#x1f98c;端口号 &#x1f415;软件结构 C/S结构 &#xff1a;全称为Client/Server结构&#xff0c;是指客户端和服务器结…

黑客编程入门 之 网络编程入门

网络编程入门 前言Socket技术详细介绍Socket 编程所需函数服务器/客户 代码 前言 “任何职业都可以成为黑客。你可以是一个木匠黑客。不一定是高科技。只要与技能有关&#xff0c;并且倾心专注于你正在做的事情&#xff0c;你就可能成为黑客。” ——引自《黑客伦理与信息时代精…

WinPcap网络编程入门——1. 获取设备列表

WinPcap网络编程入门——1. 获取设备列表 系列教程章节直达&#xff1a; Winpcap网络编程入门——1. 获取设备列表&#xff1b; 上节中我们简单介绍了 WinPcap 的相关资料&#xff0c;配置好了开发环境&#xff0c;现在就让我们正式开始网络编程开发吧&#xff01; 1. 基本开…

网络编程入门(代码很详细)

网络编程 1.1概述 计算机网络&#xff1a;计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路连接起来&#xff0c;在网络操作系统&#xff0c;网络管理软件及网络通信协议的管理和协调下&#xff0c;实现资源共享和信息传递的计算…

网络编程——(1)网络编程入门

一、软件架构 1.1C/S结构&#xff1a; 全称Client/Server结构&#xff0c;是指客户端和服务器结构。常见的程序有QQ、迅雷等。 1.2 B/S结构&#xff1a; 全称为Browser/Server结构&#xff0c;是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。 两种架构各有优势&#xf…

网络编程入门

1.网络编程入门 1.1网络编程概述 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路连接起来&#xff0c;在网络操作系统&#xff0c;网络管理软件及网络通信协议的管理和协调下&#xff0c;实现资源共享和信息传递的计算机系统 网…

线性代数学习笔记——第六讲——矩阵的转置

1. 矩阵转置的定义&#xff08;矩阵的行和列互换位置&#xff09; 2. 矩阵转置的性质之一&#xff1a;矩阵转置一次后再转置一次&#xff0c;等于矩阵自身&#xff08;有点像一个两状态开关&#xff0c;在开与关之间来回切换&#xff09; 3. 对称矩阵的充要条件是矩阵转置一次后…

转置矩阵、对称矩阵、反对称矩阵以及向量的反对称矩阵

一、转置矩阵 假设矩阵 A 如下表示&#xff1a; 则其转置矩阵表示为&#xff1a; 二、对称矩阵 若矩阵 B 与其转置矩阵相等&#xff0c;则称矩阵 B 为对称矩阵&#xff0c;如&#xff1a; 三、反对称矩阵 若矩阵 C 与其转置矩阵取负后相等&#xff0c;则称矩阵 C 为反对称矩…

Java编程之转置矩阵

一、题目 利用随机函数产生36个10~30之间的整数给一个6*6的矩阵赋值。 &#xff08;1&#xff09;求最大元素&#xff0c;并指出其在矩阵中的所有出现位置&#xff1b; &#xff08;2&#xff09;求该矩阵的转置矩阵。 二、实验代码 package fighting; import java.util.Rand…

FPGA 矩阵转置

这里写目录标题 1 功能2 开发环境3 框架4 转置公式5 Simulation第一部分第二部分第三部分 6 Matlab代码产生FIFO数据产生转置矩阵 7 HDL仿真文件顶层文件FIFO顶层文件FIFO读FIFO写RAM顶层文件 8 IP配置FIFORAMROM 9 Reference 1 功能 通过tb读取本地数据保存到FIFO&#xff0c…

MATLAB的转置

小席的碎碎叨&#xff1a;   以前处理的数据通常都是实数矩阵&#xff0c;一直认为MATLAB中的转置可用实现&#xff0c;并没有发现有什么不对。但是&#xff0c;这段时间在做线性调频信号的干扰抑制的仿真&#xff0c;其信号矩阵都是复数矩阵&#xff0c;依然在需要转置的时候…

矩阵转置(transpose、T)

1.T T 适用于一、二维数组的转置 transpose 适用于高维数组&#xff0c;需要用到一个由轴编号组成的元组&#xff0c;才能进行转置 In [1]: import numpy as npIn [2]: arr np.arange(20).reshape(4,5)#生成一个4行5列的数组In [3]: arr Out[3]: array([[ 0, 1, 2, 3, 4]…

线性代数:转置矩阵(matrix transpose)和逆矩阵(matrix inverse)

这一篇是为了后面着色效果的数学基础做积累&#xff0c;之前我们使用矩阵的大部分情况都是直接的仿射空间变换&#xff0c;就是仿射空间A变换到仿射空间B&#xff0c;使用矩阵也都是如下&#xff1a; 矩阵T*齐次坐标V 齐次坐标V 其计算细节也就是矩阵行与向量列的点积&#xf…

转置矩阵(matrix transpose)和逆矩阵(matrix inverse)的相关公式

转载自: https://blog.csdn.net/yinhun2012/article/details/84236202 这一篇是为了后面着色效果的数学基础做积累&#xff0c;之前我们使用矩阵的大部分情况都是直接的仿射空间变换&#xff0c;就是仿射空间A变换到仿射空间B&#xff0c;使用矩阵也都是如下&#xff1a; 矩阵T…

转置矩阵(Transpose of a matrix)

定义 给定一个矩阵 A&#xff0c;将矩阵的行列互换得到的新矩阵称为转置矩阵&#xff0c;记为 &#xff0c;。转置矩阵的行列式不变&#xff0c;即 。转置矩阵由下列动作建立&#xff1a; 将 A 的横行写为 的纵列&#xff1b;将 A 的纵列写成 的横行。 形式来说&#xff0…

数据结构--3.3 矩阵转置

矩阵转置 结构体创建初始化转置打印测试代码运行结果 1.稀疏矩阵的压缩存储&#xff0c;至少需要存储以下信息&#xff1a; 矩阵中各非 0 元素的值&#xff0c;以及所在矩阵中的行标和列标&#xff1b; 矩阵的总行数和总列数&#xff1b; 上图是一个稀疏矩阵&#xff0c;若对…

D2D与其他短距离通信技术

本篇文章主要对D2D和其他短距离通信技术&#xff08;WIFI\NFC\zigbee\蓝牙、超宽带、微站&#xff09;做了比较&#xff0c;从运营商投入、基础设施、应用、最大传输速率、最大传输距离、频率、标准、特征等方面

D2D引擎与GDI\GDI+绘制效果对比

本例主要是对比D2D和GDI在绘制文字、线条的区别&#xff0c;以及D2D与GDI在绘制图片时的区别。 D2D是基于COM组件开发的&#xff0c;使用前的CoInitialize(NULL)是必须的&#xff1b;另外&#xff0c;GDI的初始化GdiplusStartup&#xff08;&#xff09;也别忘了。 废话少说&…

D2D加载图片资源(2)

※先给大家认识下什么是WIC WIC全称是Windows Image Component&#xff0c;是一套扩展的API&#xff0c;用来处理数字图像&#xff0c;它是基于COM组件的。该API包含非常丰富的图像处理函数。 详细可以点击百度文库再看看 http://baike.baidu.com/view/414115.htm?fraladdi…