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

用ostinato构造一数据包(有Dmac、Smac),数据包本地发出后,在目的端抓不到该数据包
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 你知我知皆知 2024-08-04 14:36关注
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
要解决这个问题,首先需要了解如何使用
ostinato
生成数据包。ostinato
是一个用于模拟网络层协议的工具,它可以帮助我们创建各种各样的数据包。- 创建一个
ostinato
对象:
from ostinato import *
- 使用
create_packet
方法创建数据包:
packet = create_packet(ethernet, 0x0800, 0x0806)
- 设置数据包的源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
- 使用
pack
方法将数据包打包为字节流:
data = packet.pack()
- 将字节流发送给目的端:
send(data, 'localhost', '192.168.1.1')
- 在目的端捕获数据包:
def on_packet_received(packet): print("Received packet:", packet) listen_on('localhost', on_packet_received)
- 执行上述步骤以捕获并显示接收的数据包。
注意:这个例子是在本地环境中运行的。如果你想要在远程服务器上执行这些操作,请确保你已经安装了
ostinato
库,并且你的服务器允许从外部进行网络通信。解决 无用评论 打赏 举报 - 创建一个