zoukankan      html  css  js  c++  java
  • 网络协议分析-ARP协议分析

    ARP分组的格式如下图:

    在这里插入图片描述

    字段1是ARP请求的目的以太网地址,全1时代表广播地址。
    字段2是发送ARP请求的以太网地址。
    字段3以太网帧类型表示的是后面的数据类型,ARP请求和ARP应答这个值为0x0806。
    字段4表示硬件地址的类型,硬件地址不只以太网一种,是以太网类型时此值为1。
    字段5表示要映射的协议地址的类型,要对IPv4地址进行映射,此值为0x0800。
    字段6和7表示硬件地址长度和协议地址长度,MAC地址占6字节,IP地址占4字节。
    字段8是操作类型字段,值为1,表示进行ARP请求;值为2,表示进行ARP应答;3,
    表示进行RARP请求;值为4,表示进行RARP应答。
    字段9是发送端ARP请求或应答的硬件地址,这里是以太网地址,和字段2相同。
    字段10是发送ARP请求或应答的IP地址。
    字段11和12是目的端的硬件地址和协议地址。
    下面两张图分别是ARP请求和相应的ARP应答的分组格式截图。
    ARP请求分组中,字段11目的MAC地址未知,用全0进行填充。
    ARP应答分组中,将ARP请求中的源和目的地址进行交换,此外,变化的还有字段8 Opcode。其余字段内容不会发生变化。

    导入 scapy 库
    找到arp

    from scapy.all import *
    ls()
    

    在这里插入图片描述

    实例化arp数据包格式
    arp=ARP()
    arp.show()
    

    在这里插入图片描述

    ytw=Ether()
    packet=ytw/arp
    
    构建一个Ethernet和ARP复合数据类型

    在这里插入图片描述

    import os					#导入os模块
    os.system("ifconfig")		#查看本地ip
    

    在这里插入图片描述

    赋值源ip地址,因为在本地所有一样

    在这里插入图片描述

    赋值广播地址

    在这里插入图片描述

    发包

    在这里插入图片描述

    分析

    在这里插入图片描述

    以太网2协议对应的源地址就是路由器的mac地址,目标地址对应广播地址(全f)

    在这里插入图片描述

    arp请求包

    在这里插入图片描述

    arp应答包

    在这里插入图片描述

  • 相关阅读:
    css深入理解vertical-align
    css深入理解之overflow
    深入理解CSS中的margin
    深入理解line-height
    深入理解css之float
    javascript正则表达式
    深入理解css之absolute
    _splitpath / _wsplitpath 将绝对路径分割为盘符、路径、文件名、扩展名。
    cocos2d-x环境的搭建之xcode-本人亲历成功搭建!
    lua语法
  • 原文地址:https://www.cnblogs.com/cqnswp/p/12568866.html
Copyright © 2011-2022 走看看