美文网首页
基于Winpcap实现的发送ARP数据包和IP数据包

基于Winpcap实现的发送ARP数据包和IP数据包

作者: 奔跑骚年 | 来源:发表于2018-12-29 08:38 被阅读0次

    1 项目介绍

    1.1 基本任务

    完成两台主机之间的数据通信(数据链路层)

    仿真ARP协议获得网段内主机的MAC表

    使用帧完成两台主机的通信(Hello! I’m …)

    1.2 高端任务

    完成两台主机通过中间主机的数据通信(网络层)

    增加基于IP地址的转发功能

    增加网络层封装

    2 帧结构

    2.1 以太网帧格式

    2.3 对于基本任务

    获取本机mac的实现原理:主机A发送了一个广播帧,sourceip则随便设置了一个,主要用于在接收帧的时候识别,在GetSelfMac的方法里,利用winpcap的pcap_next_ex抓取包的时候,判断sourceip是不是之前设定的那个就可以。

    获取活动主机的原理:广播arp包对返回的arp包进行数据解析。由于arp包的简洁性,发送和接收都很简单。

    Main.cpp主要的活动:获取自己的mac—>获取局域网内的活动主机—>用户选择发送给哪台机器—>根据选择的主机,封装数据,目的mac,目的ip—>等待接收消息—>接收到消息,解包,解析出收到包的所有信息

    Receive.cpp主要的活动:获取自己的mac—>等待接收数据—>接收到消息,解析,展示,然后提取出源mac,ip—>返回消息

    图1:main获取mac(获取活动主机的忘记截图了,代码里有体现,为了测试,取消了这部分),发送消息之后,立刻把发送消息的信息输出来.

    参考文档和完整的文档和源码下载地址:

    https://www.write-bug.com/article/1457.html

    相关文章

      网友评论

          本文标题:基于Winpcap实现的发送ARP数据包和IP数据包

          本文链接:https://www.haomeiwen.com/subject/lhqelqtx.html