winpcap发送单个数据包的示例
来源:互联网 发布:c语言 二维数组编程题 编辑:程序博客网 时间:2024/05/17 09:26
#define WIN32#define HAVE_REMOTE #include <stdio.h>#include "pcap.h"#include "Win32-Extensions.h"
</pre><pre code_snippet_id="1838127" snippet_file_name="blog_20160818_3_7307846" name="code" class="cpp">//第一次遇到,在变量声明的时候不是随时都可以的,vs2010下 要把变量声明放到最前面,否则会报错void genPacket(unsigned char *buf,int len){ int i=0; //设置目标MAC地址为:01:01:01:01:01 for (i=0;i<6;i++) { buf[i]=0x01; } //设置源MAC地址为:02:02:02:02:02 for (i=6;i<12;i++) { buf[i]=0x02; } //设置协议标识为xc0xd,无任何实际意义 buf[12]=0xc; buf[13]=0xd; //填充数据包的内容 for(i=14;i<len;i++) { buf[i]=i-14; }} int main(){ pcap_if_t *alldevs; pcap_if_t *d; int inum; int i=0; pcap_t *adhandle; char errbuf[PCAP_ERRBUF_SIZE]; int ret=-1; int MaxPacketLen=100; unsigned char *pBuf= (unsigned char *)malloc(MaxPacketLen); memset(pBuf,0x0,MaxPacketLen);if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL,&alldevs, errbuf) == -1) { fprintf(stderr,"Error in pcap_findalldevs: %s\n", errbuf); exit(1); } for(d=alldevs; d; d=d->next) { printf("%d. %s", ++i, d->name); if (d->description) printf(" (%s)\n", d->description); else printf(" (No description available)\n"); } if(i==0) { printf("\nNo interfaces found! Make sureWinPcap is installed.\n"); return -1; } printf("Enter the interface number (1-%d):",i); scanf("%d", &inum); if(inum < 1 || inum > i) { printf("\nInterface number out of range.\n"); pcap_freealldevs(alldevs); return -1; } for(d=alldevs, i=0; i< inum-1 ;d=d->next, i++); if ( (adhandle= pcap_open(d->name, 65536,PCAP_OPENFLAG_PROMISCUOUS, 1000, NULL,errbuf) )== NULL) { fprintf(stderr,"\nUnable to open the adapter.%s is not supported by WinPcap\n", d->name); pcap_freealldevs(alldevs); return -1; } printf("\nlistening on %s...\n", d->description); //获得生成的数据包,长度为MaxPacketLen genPacket(pBuf,MaxPacketLen); if ( (ret=pcap_sendpacket(adhandle,pBuf,MaxPacketLen)==-1) { printf("发送失败\n"); pcap_close(adhandle); pcap_freealldevs(alldevs); return -1; } free(pBuf); pcap_close(adhandle); pcap_freealldevs(alldevs); return 0;}
结果:
0 0
- winpcap发送单个数据包的示例
- WINPCAP发送自己构造的数据包问题
- 关于使用Winpcap发送数据包的心得
- winpcap使用:发送数据包
- 用winpcap发送UDP数据包
- WinPcap基础知识(第八课:发送数据包)
- WinPcap编程0x0300 发送一个数据包
- WinPcap学习(九)发送数据包
- 解析Winpcap截获的数据包
- winpcap发送数据包模拟TCP连接和断开的7次握手
- 深度剖析WinPcap之(九)——数据包的发送过程(1)
- 深度剖析WinPcap之(九)——数据包的发送过程(2)
- 深度剖析WinPcap之(九)——数据包的发送过程(3)
- 深度剖析WinPcap之(九)——数据包的发送过程(4)
- 深度剖析WinPcap之(九)——数据包的发送过程(5)
- 深度剖析WinPcap之(九)——数据包的发送过程(6)
- 深度剖析WinPcap之(九)——数据包的发送过程(7)
- 深度剖析WinPcap之(九)——数据包的发送过程(8)
- Android Studio 乱码问题
- 【腾讯TMQ】WIFI安全测试,其实不难
- Android Studio 错误: 非法字符: '\ufeff' 解决方案|错误: 需要class, interface或enum
- Xcode_7 iOS_9 ActiveIndicatorView_ProgressView_警告窗_操作表 控件 Objective-C (3)
- 数据结构实验之图论七:驴友计划
- winpcap发送单个数据包的示例
- VBA访问access数据库实例
- activiti工作流02
- 红包达人app是真的吗,红包达人怎么玩?红包达人官方下载最新最全教程
- NYOJ564 & CSU 1106 最优对称路径【记忆化搜索+最短路】
- Value
- iOS 学习资料整理
- 博客文章第一篇
- java Socket用法详解