TCP/IP调试利器 winpcap
一、介绍
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相关推荐
- 推荐一款串口TCP协议调试利器-小平TCP串口调试特工
小平TCP串口调试特工 下载地址: https://download.csdn.net/download/zyhlove813/13128830 介绍(附件) 小平TCP串口调试特工是一款免费的软件, ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之05【EC20模组TCP/IP模块AT指令说明】
QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之05[EC20模组TCP/IP模块AT指令说明] Socket长连接 一.准备工作 二.针对TCP/IP协议 关于TCP/ ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之【05EC20模组TCP/IP模块AT指令说明】
本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软.硬件工程师对物联网模组调试和使用的上手速度. 一.准备工作 1.软 ...
- 关于 WEB/HTTP 调试利器 Fiddler 的一些技巧分享
随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 转自:https://my.oschina.net/leejun2005/blog/151103 1.原理简介 ...
- 用TCP/IP进行网际互联一
地址解析协议ARP 主机知道某个目的主机的IP就可以知道该目的主机的物理地址. 改进ARP 每个ARP广播分组中都包含有发送方自身的IP和物理地址的绑定,接收方在处理ARP分组时,先在自己的缓存中更新 ...
- wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的
wireshark的使用教程 --用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的 wireshark是一款抓包软件,比较易用,在平常可以利用它抓包,分析协议或者监控网络,是一个比较好的 ...
- TCP/IP协议的编写《转载》
基于HHARM9-EDU的TCP/IP(UDP)协议的实现 原文网址:http://blog.csdn.net/lhj0503/article/details/3323788 摘 要:嵌入式技术的发展 ...
- TCP/IP详解--第八章
第8章 Traceroute程序 8.1 引言 由Van Jacobson编写的 Traceroute程序是一个能更深入探索TCP/IP协议的方便可用的工具. 尽管不能保证从源端发往目的端的两 ...
- C1000k 新思路:用户态 TCP/IP 协议栈
转自:http://blog.csdn.net/solstice/article/details/26363901 C1000k 新思路:用户态 TCP/IP 协议栈 现在的服务器支撑上百万个并发 T ...
最新文章
- 相机定位 | cv paper整理
- qt设置文本背景透明_Qt修改图片的背景色及设置背景色为透明的方法
- 解决Nginx出现403 forbidden (13: Permission denied)报错的四种方法
- java使用POI jar包读写xls文件
- 说说mysql_说说MySQL权限 - andyqian的个人空间 - OSCHINA - 中文开源技术交流社区
- C#LeetCode刷题之#34-在排序数组中查找元素的第一个和最后一个位置(Find First and Last Position of Element in Sorted Array)
- 刚入职新公司做一些什么贡献_如果您有全职工作,如何为Kubernetes做贡献
- myEclipse配置java版本(环境、项目、编译)
- 面试大厂被怼!这都搞不定,你只能做“搬运工”!
- redis持久化、内存优化、过期、LRU内存
- java获取光标位置_javastscript获取光标位置
- PHP curl请求https
- mysql cluster error 4010 157_关于mysql-cluster的一些问题想讨教各位经验人事
- 金蝶K3WISE15.1开启WEBAPI
- 【Selenium Grid 分布式测试】Selenium Grid下载安装
- 开放平台API安全设计方案
- 【天光学术】社会语言学论文:委婉语合作原则违反的具体体现与影响(节选)
- loop variable ‘numerator‘ creates a copy from type ‘const std::string‘ [-Wrange-loop-construct]
- mosaic数据增强
- nexus5 博通芯片WIFI详解 (3)
热门文章
- 数据可视化:数据可视化的意义
- 大华大屏显示高清服务器4u,大华DAHUA国内大华视频综合平台增强型主机DH-M70-4U-E-I产品中心_DAV数字音视工程网...
- 毕业3年,我从鉴黄师转行到阿里做测试
- 从OKR案例中学到的9个重要的经验教训
- 几计算机网络特,计算机网络知识点(2010级)
- fifa足球世界微信多少服务器,FIFA足球世界 微信登录版
- Unity使用Animation动画控制物体实现slep旋转
- SSM 实现文件上传
- 指令集CEO潘爱民受邀参加“OPPO 2020未来科技大会”,并发表主题演讲
- 数据可视化的展现形式有哪些