winpcap与arp协议

winpcap与arp协议

ID:27917534

大小:421.00 KB

页数:33页

时间:2018-12-07

winpcap与arp协议_第1页
winpcap与arp协议_第2页
winpcap与arp协议_第3页
winpcap与arp协议_第4页
winpcap与arp协议_第5页
资源描述:

《winpcap与arp协议》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、- Winpcap网络编程九之Winpcap实战,ARP协议获得MAC表及主机通信标签: winpcap2014-10-1820:45 2164人阅读 评论(2) 收藏 举报 分类: 计算机网络(9)  C++(9)  C(16) 版权声明:本文为博主原创文章,未经博主允许不得转载。大家好,本次我们需要完成的任务是: 完成两台主机之间的数据通信(数据链路层)·仿真ARP协议获得网段内主机的MAC表·使用帧完成两台主机的通信(Hello!I’m…)    声明:本文章的目的是为大家的Winpcap编程带来一

2、定的借鉴,希望对大家的课程设计有一定的帮助。总之,我相信,大家看了前几篇Winpcap编程基础知识,再加上这篇文章的讲解,一步一步做下来,相信你能成功的。P.S.对Winpcap编程的基础知识有一定了解的就不用再去费工夫学习咯。我也是一点一点学习的,在此提供给大家一个学习文档,Winpcap中文文档P.P.S.另外....CSDN略坑爹....我的代码它可能自动转码...我都为此改了好多次了...代码有显示问题与我联系...邮箱 1016903103@qq.com ...以后转自己个人空间...好了话不多

3、说,我们步入正题...首先我们要理解ARP是干嘛的,ARP主要作用就是通过IP地址来获取MAC地址。那么怎样获取呢?本机向局域网内主机发送ARP包,ARP包内包含了目的IP,源IP,目的MAC,源MAC,其中目的MAC地址为广播地址,.---FF-FF-FF-FF-FF-FF,即向局域网内所有主机发送一个ARP请求,那么其他主机收到这个请求之后则会向请求来源返回一个数据包。在这个返回的数据包中包含了自身的MAC地址。那么本机收到这些返回的数据包进行解析之后便会得到局域网内所有主机的MAC地址了..编程开始

4、:新建一个C++项目,配好环境,引入Winpcap相关的库,这些不再赘述。头文件引入[cpp] viewplain copy 1.#define HAVE_REMOTE  2.#define WPCAP  3.#include   4.#include   5.#include   在main函数中首先声明一系列变量如下[cpp] viewplain copy 1.char *ip_addr;                              

5、      //IP地址  2.char *ip_netmask;                             //子网掩码  3.unsigned char *ip_mac;          //本机MAC地址  为这三个变量分配地址空间[cpp] viewplain copy 1.ip_addr = (char *) malloc(sizeof(char) * 16); //申请内存存放IP地址  2.    if (ip_addr == NULL)  3.    {  4.      

6、  printf("申请内存存放IP地址失败!");  5.        return -1;  6.    }  7.    ip_netmask = (char *) malloc(sizeof(char) * 16); //申请内存存放NETMASK地址  8.    if (ip_netmask == NULL)  9.    {  10.        printf("申请内存存放NETMASK地址失败!");  11.        return -1;  .---1.    }  

7、2.    ip_mac = (unsigned char *) malloc(sizeof(unsigned char) * 6); //申请内存存放MAC地址  3.    if (ip_mac == NULL)  4.    {  5.        printf("申请内存存放MAC地址失败!");  6.        return -1;  7.    }  接下来就是烂大街的程序,获取适配器列表并选中相应的适配器,注释已经在代码中了,如果还有不明白的请参照前几次的讲解。[cpp] vie

8、wplain copy 1.//获取本地适配器列表  2.    if(pcap_findalldevs_ex(PCAP_SRC_IF_STRING,NULL,&alldevs,errbuf) == -1){  3.        //结果为-1代表出现获取适配器列表失败  4.        fprintf(stderr,"Error in pcap_findalldevs_ex:",errbuf);  5.      

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。