如何在python中获取到网站的跳数

2024-09-30 20:35:25 发布

您现在位置:Python中文网/ 问答频道 /正文

addr = socket.gethostbyname('dalitstan.org')
target = [addr]
result, unans = traceroute(target,maxttl=32)

我正在使用上面的代码和下面的输出。在下面的情况下,如何获得机器和服务器之间的跃点数,即18?在

^{pr2}$

Tags: 代码org机器target情况socketresultaddr
1条回答
网友
1楼 · 发布于 2024-09-30 20:35:25

您要查找的结果是使用TCP层的第一个答案(因为以前的跃点使用ICMP数据包进行响应)。更准确地说,您正在寻找您发送的、得到TCP应答的较低的TTL。在

在Scapy中,可以使用[TCP]:result[TCP]从包含TCP层的(probe, answer)对象中选择(probe, answer)元组。如果我不够清楚,你可以把result.show()和{}进行比较。在

现在,要提取发送包的ttl值,可以使用[snd[IP].ttl for snd, _ in result[TCP]]。您只需要使用min()来获得最小值(或者使用[0]next()的第一个值,因为数据包是排序的;但是我觉得使用min()更安全):

result, _ = traceroute('dalitstan.org')
min(snd[IP].ttl for snd, _ in result[TCP])

相关问题 更多 >