Trex -用 Python生成特定的流量模式

首先,确保 Scapy 版本是最新的。您可以通过以下命令更新 Scapy:

pip install --upgrade scapy

如果更新 Scapy 后问题仍然存在,可以尝试以下方法来获取 TTL:

方法 1:直接访问字段值

在 Scapy 中,您可以直接访问数据包的字段值。对于 ICMP 数据包,TTL 值存储在 IP 层的 ttl 字段中。您可以通过以下方式获取 TTL 值:

# -*- coding: utf-8 -*-
from scapy.all import *

# 目标 IP 地址
target_ip = "8.8.8.8"

# 发送的 ICMP Echo Request 的数量
number_of_packets = 5

# 创建一个 ICMP Echo Request 数据包
packet = IP(dst=target_ip) / ICMP()

# 发送数据包并接收响应
for i in range(number_of_packets):
    resp = sr1(packet, timeout=1, verbose=False)
    if resp is not None:
        ttl = resp[IP].ttl  # 直接访问 IP 层的 ttl 字段
        print(f"Received response from {resp.src} with TTL={ttl}")
    else:
        print("No response received")

print("Done")

方法 2:使用 haslayergetlayer 方法

另一种方法是使用 haslayergetlayer 方法来获取 TTL 值:

# -*- coding: utf-8 -*-
from scapy.all import *

# 目标 IP 地址
target_ip = "8.8.8.8"

# 发送的 ICMP Echo Request 的数量
number_of_packets = 5

# 创建一个 ICMP Echo Request 数据包
packet = IP(dst=target_ip) / ICMP()

# 发送数据包并接收响应
for i in range(number_of_packets):
    resp = sr1(packet, timeout=1, verbose=False)
    if resp is not None:
        if resp.haslayer(IP):
            ttl = resp.getlayer(IP).ttl  # 使用 getlayer 方法获取 IP 层的 ttl 字段
            print(f"Received response from {resp.src} with TTL={ttl}")
    else:
        print("No response received")

print("Done")

运行脚本

保存脚本后,使用以下命令运行:

sudo -E /home/xmp/ESX/v2.87/trex_env/bin/python z_test.py
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值