sunshine008 2015-10-28 15:20 采纳率: 0%
浏览 943

用ostinato构造一数据包(有Dmac、Smac),数据包本地发出后,在目的端抓不到该数据包

                用ostinato构造一数据包(有源mac和目的mac以及ethtype),数据包本地发出后(本地wireshark可以抓到发出的包),在目的端抓不到该数据包?求解
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 14:36
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要解决这个问题,首先需要了解如何使用ostinato生成数据包。ostinato是一个用于模拟网络层协议的工具,它可以帮助我们创建各种各样的数据包。

    1. 创建一个ostinato对象:
    from ostinato import *
    
    1. 使用create_packet方法创建数据包:
    packet = create_packet(ethernet, 0x0800, 0x0806)
    
    1. 设置数据包的源MAC地址、目标MAC地址和ETP类型:
    packet.src_mac = MAC('00:00:00:00:00:00')
    packet.dst_mac = MAC('00:00:00:00:00:01') # 目标MAC地址
    packet.ethertype = ETHERTYPE_IP
    
    1. 使用pack方法将数据包打包为字节流:
    data = packet.pack()
    
    1. 将字节流发送给目的端:
    send(data, 'localhost', '192.168.1.1')
    
    1. 在目的端捕获数据包:
    def on_packet_received(packet):
        print("Received packet:", packet)
    
    listen_on('localhost', on_packet_received)
    
    1. 执行上述步骤以捕获并显示接收的数据包。

    注意:这个例子是在本地环境中运行的。如果你想要在远程服务器上执行这些操作,请确保你已经安装了ostinato库,并且你的服务器允许从外部进行网络通信。

    评论

报告相同问题?