Scapy srp1 超时请求

Scapy srp1 timeout request

我正在尝试使用 python 构建 tracert。我做了一个 运行s ttl 时间的循环,以显示消息已通过的所有源 ip。

我知道有一些 "stations" 没有超过 return ttl,所以我需要用 srp 创建一个超时请求,我真的不知道是什么 srp1(味精,超时= 10) 会 return 给我,因为我看不到 returned 消息

我在循环中得到了 运行 的 TTL 大小,只需要知道如果超时如何处理。

for i in range(1,ttl+1):
    msg = Ether() / IP(dst = domain, ttl = i) / ICMP()
    ans = srp1(msg, verbose = 0, timeout = 10)
    print("%d: %s" % (i, ans[IP].src))

如果发生超时,srp1 将 return None.

if ans is not None:
    print("%d: %s" % (i, ans[IP].src))
else:
    print("%d: Timeout waiting for %s" % (i, fullmsg[IP].dst))

timeout=2 应该是一个很好的值。