一、介绍
winpcap(windows packet capture)是windows平台下一个免费工具,通过它win32应用程序可以访问网络底层。用于windows系统下的直接网络编程。

很多不同的工具软件使用Winpcap于网络分析,故障排除,网络安全监控等

这里使用DEV C++作为开发工具搭建开发环境
二、下载
https://www.winpcap.org/devel.htm


三、使用方法
http://www.ferrisxu.com/WinPcap/html/index.html

1、搭建工程
2、添加库文件wpcap.lib


3、添加头文件路径

4、安装驱动

5、添加代码

#define WPCAP
#define HAVE_REMOTE#include "pcap.h"
#pragma comment(lib, "wpcap")

四、完整示例
my_pcap.c

#include <stdio.h>
#include <string.h>#define WPCAP
#define HAVE_REMOTE#include "pcap.h"
#pragma comment(lib, "wpcap")int my_pcap_init()
{return 0;
}int pcap_eth_packetsend(char *dev, unsigned char *buff, int len)
{typedef struct eth_header{unsigned char des[6];unsigned char src[6];unsigned short type;}eth_header;const eth_header eth_header_default = {.des = {0x01,0x01,0x01,0x01,0x01,0x01},.src = {0x02,0x02,0x02,0x02,0x02,0x02},.type = 0x0800};eth_header *eth_header_tmp = 0;unsigned char sendbuff[2048] = {0};pcap_t *fp;char errbuf[PCAP_ERRBUF_SIZE];eth_header_tmp = (eth_header *)sendbuff;*eth_header_tmp = eth_header_default;memcpy(&sendbuff[14], buff, len);if ((fp = pcap_open_live(dev,       // name of the device65536,         // portion of the packet to capture. It doesn't matter in this case 1,             // promiscuous mode (nonzero means promiscuous)1000,            // read timeouterrbuf           // error buffer)) == NULL){printf("Unable to open the adapter\n");fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n", dev);return -1;}if(pcap_sendpacket(fp,         // Adaptersendbuff,             // buffer with the packet(len+14)                  // size) != 0){printf("Error sending the packe\n");fprintf(stderr,"\nError sending the packet: %s\n", pcap_geterr(fp));return -1;}elseprintf("send successed!\n");pcap_close(fp);
}int pcap_eth_packetrcv(char *dev, unsigned char *buff, int len)
{}

my_pcap.h

#ifndef __MY_NETMAP_H
#define __MY_NETMAP_Hint my_pcap_init();
int pcap_eth_packetsend(char *dev, unsigned char *buff, int len);
int pcap_eth_packetrcv(char *dev, unsigned char *buff, int len);#endif

main.c

#include <stdio.h>
#include <windows.h>
#include "my_pcap.h"int my_netmap_test()
{printf("pcap test\n");my_pcap_init();while(1){printf("send one packet\n");pcap_eth_packetsend("WLAN", "hello guoguo", 12);printf("send one packet\n");Sleep(1000);printf("send one packet\n");}
}int main()
{my_netmap_test();while(1);return 0;
}

TCP/IP调试利器 winpcap相关推荐

  1. 推荐一款串口TCP协议调试利器-小平TCP串口调试特工

    小平TCP串口调试特工 下载地址: https://download.csdn.net/download/zyhlove813/13128830 介绍(附件) 小平TCP串口调试特工是一款免费的软件, ...

  2. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之05【EC20模组TCP/IP模块AT指令说明】

    QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之05[EC20模组TCP/IP模块AT指令说明] Socket长连接 一.准备工作 二.针对TCP/IP协议 关于TCP/ ...

  3. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之【05EC20模组TCP/IP模块AT指令说明】

    本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软.硬件工程师对物联网模组调试和使用的上手速度. 一.准备工作 1.软 ...

  4. 关于 WEB/HTTP 调试利器 Fiddler 的一些技巧分享

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 转自:https://my.oschina.net/leejun2005/blog/151103 1.原理简介 ...

  5. 用TCP/IP进行网际互联一

    地址解析协议ARP 主机知道某个目的主机的IP就可以知道该目的主机的物理地址. 改进ARP 每个ARP广播分组中都包含有发送方自身的IP和物理地址的绑定,接收方在处理ARP分组时,先在自己的缓存中更新 ...

  6. wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的

     wireshark的使用教程 --用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的 wireshark是一款抓包软件,比较易用,在平常可以利用它抓包,分析协议或者监控网络,是一个比较好的 ...

  7. TCP/IP协议的编写《转载》

    基于HHARM9-EDU的TCP/IP(UDP)协议的实现 原文网址:http://blog.csdn.net/lhj0503/article/details/3323788 摘 要:嵌入式技术的发展 ...

  8. TCP/IP详解--第八章

    第8章 Traceroute程序 8.1   引言   由Van Jacobson编写的 Traceroute程序是一个能更深入探索TCP/IP协议的方便可用的工具. 尽管不能保证从源端发往目的端的两 ...

  9. C1000k 新思路:用户态 TCP/IP 协议栈

    转自:http://blog.csdn.net/solstice/article/details/26363901 C1000k 新思路:用户态 TCP/IP 协议栈 现在的服务器支撑上百万个并发 T ...

最新文章

  1. 相机定位 | cv paper整理
  2. qt设置文本背景透明_Qt修改图片的背景色及设置背景色为透明的方法
  3. 解决Nginx出现403 forbidden (13: Permission denied)报错的四种方法
  4. java使用POI jar包读写xls文件
  5. 说说mysql_说说MySQL权限 - andyqian的个人空间 - OSCHINA - 中文开源技术交流社区
  6. C#LeetCode刷题之#34-在排序数组中查找元素的第一个和最后一个位置(Find First and Last Position of Element in Sorted Array)
  7. 刚入职新公司做一些什么贡献_如果您有全职工作,如何为Kubernetes做贡献
  8. myEclipse配置java版本(环境、项目、编译)
  9. 面试大厂被怼!这都搞不定,你只能做“搬运工”!
  10. redis持久化、内存优化、过期、LRU内存
  11. java获取光标位置_javastscript获取光标位置
  12. PHP curl请求https
  13. mysql cluster error 4010 157_关于mysql-cluster的一些问题想讨教各位经验人事
  14. 金蝶K3WISE15.1开启WEBAPI
  15. 【Selenium Grid 分布式测试】Selenium Grid下载安装
  16. 开放平台API安全设计方案
  17. 【天光学术】社会语言学论文:委婉语合作原则违反的具体体现与影响(节选)
  18. loop variable ‘numerator‘ creates a copy from type ‘const std::string‘ [-Wrange-loop-construct]
  19. mosaic数据增强
  20. nexus5 博通芯片WIFI详解 (3)

热门文章

  1. 数据可视化:数据可视化的意义
  2. 大华大屏显示高清服务器4u,大华DAHUA国内大华视频综合平台增强型主机DH-M70-4U-E-I产品中心_DAV数字音视工程网...
  3. 毕业3年,我从鉴黄师转行到阿里做测试
  4. 从OKR案例中学到的9个重要的经验教训
  5. 几计算机网络特,计算机网络知识点(2010级)
  6. fifa足球世界微信多少服务器,FIFA足球世界 微信登录版
  7. Unity使用Animation动画控制物体实现slep旋转
  8. SSM 实现文件上传
  9. 指令集CEO潘爱民受邀参加“OPPO 2020未来科技大会”,并发表主题演讲
  10. 数据可视化的展现形式有哪些