欢迎来到天天文库
浏览记录
ID:27436701
大小:264.00 KB
页数:17页
时间:2018-12-02
《实验6获取以太网中ip地址与mac地址的对应关系》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验6:获取以太网中IP地址与MAC地址的对应关系ARP协议问题的提出互联层通过IP地址指定报文的始发地和目的地低层物理网络使用物理地址表达帧的源和宿地址解析协议ARP以太网使用ARP将IP地址与MAC地址进行动态映射以太网具有固定长度的MAC地址和广播能力ARP协议的基本思想RP协议的改进高速缓存技术高速缓存区中保存最近获得的ARP表项高速缓冲区中ARP表项新鲜性的保持:计时器实验表明高速缓冲区的使用可以大大提高ARP的效率其他改进技术目的主机接收到ARP请求后将源主机的IP地址与物理地址映射关系存入自己的高速缓冲区ARP请求是广播
2、发送的,网络中的所有主机接收到ARP请求后都可以将源主机的IP地址与物理地址映射关系存入自己的高速缓冲区主机启动时主动广播自己的IP地址与物理地址的映射关系完整的ARP工作过程以太网中ARP的报文格式ARP报文中各字段的意义硬件类型:以太网接口类型为1协议类型:IP协议类型为080016操作:ARP请求为1,ARP应答为2硬件地址长度:MAC地址长度为6B协议地址长度:IP地址长度为4B源MAC地址:发送方的MAC地址源IP地址:发送方的IP地址目的MAC地址:ARP请求中该字段没有意义;ARP响应中为接收方的MAC地址目的IP地址:
3、ARP请求中为请求解析的IP地址;ARP响应中为接收方的IP地址ARP命令功能:用于查看、添加和删除高速缓存区中的ARP表项高速缓冲区中的ARP表项动态表项:随时间推移自动添加和删除静态表项:一直保留,直到人为删除或重新启动计算机Windows中ARP表项的潜在生命周期:10分钟新表项加入时定时器开始计时表项添加后两分钟内没有被再次使用:删除表项被再次使用:增加2分钟的生命周期表项始终在使用:最长生命周期为10分钟显示高速cache中的ARP表添加和删除ARP表项添加命令:arp–sinet_addreth_addr人为增加ARP表项
4、一定要确保IP地址与MAC地址的对应关系是正确的删除命令:arp–dinet_addrInet_addr为“*”时删除所有表项利用WinPcap获取IP-MAC的对应关系获取本机网卡的MAC和IP地址NetBIOS编程接口与winsock的gethostbyname函数获取的MAC地址和IP地址很难与WinPcap获取的设备接口名对应pcap_findalldevs_ex可以获取本机的网络接口设备列表包含了本机所有网络接口和接口上绑定的IP地址不包含接口的物理地址获取本机网卡的MAC和IP地址获取本机网络接口和接口上绑定的IP地址发送
5、ARP请求,请求本机网络接口上绑定的IP地址与MAC地址的对应关系:本地主机模拟一个远端主机,发送一个ARP请求报文,该请求报文请求本机网络接口上绑定的IP地址与MAC地址的对应关系捕获本机的ARP响应,获取本机网络接口卡的MAC地址发送数据包intpcap_sendpacket(pcap_t*p,u_charbuf,intsize};发送ARP请求的例子(1)#pragmapack(1)typedefstructFrameHeader_t{//帧首部BYTEDesMAC[6];BYTESrcMAC[6];WORDFrameType;
6、}FrameHeader_t;typedefstructARPFrame_t{//ARP帧FrameHeader_tFrameHeader;WORDHardwareType;WORDProtocolType;BYTEHLen;BYTEPLen;WORDOperation;BYTESendHa[6];DWORDSendIP;BYTERecvHa[6];DWORDRecvIP;}ARPFrame_t;#pragmapack()发送ARP请求的例子(2)ARPFrame_tARPFrame;//将ARPFrame.FrameHeader.D
7、esMAC设置为广播地址。//将ARPFrame.FrameHeader.SrcMAC设置为本机网卡的MAC地址。ARPFrame.FrameHeader.FrameType=htons(0x0806);//帧类型为ARPARPFrame.HardwareType=htons(0x0001);//硬件类型为以太网ARPFrame.ProtocolType=htons(0x0800);//协议类型为IPARPFrame.HLen=6;//硬件地址长度为6ARPFrame.PLen=4;//协议地址长度为4ARPFrame.Operati
8、on=htons(0x0001);//操作为ARP请求//将ARPFrame.SendHa设置为本机网卡的MAC地址。//将ARPFrame.SendIP设置为本机网卡上绑定的IP地址。//将ARPFrame.RecvH
此文档下载收益归作者所有