|
5
|
| Dave Forgac Eli Bendersky · 技术社区 · 16 年前 |
|
|
1
4
|
|
|
2
8
如果您不介意使用外部模块而不使用UDP或TCP, scapy 是一个简单的解决方案:
或者可以使用TCP版本
请注意,为了能够执行这些任务,您必须以根用户身份运行scapy,否则将得到:
|
|
|
3
3
这个 Webb Library 在执行各种与Web相关的提取时非常方便……通过它可以轻松地执行ping和traceroute。只需包含要跟踪的URL路由到:
如果要自动将traceroute日志存储到文本文件中,请使用以下命令:
同样,URL(服务器)的IP地址可以通过以下代码行获得:
希望它有帮助! |
|
|
4
0
你可能想看看 scapy 包裹。它是瑞士军刀的网络工具为巨蟒。 |
|
|
5
0
作为ICMP协议的一部分,ICMP ping是标准的。 traceroute使用ICMP和IP的特性通过生存时间值来确定路径。使用TTL值,您可以在各种协议中执行跟踪路由,只要IP/ICMP工作,因为正是ICMP TTL超出的消息告诉您路径中的跃点。 如果您试图访问没有侦听器可用的端口,根据ICMP协议规则,主机应该发送一条无法访问的ICMP端口消息。 |
|
6
0
我用python编写了一个简单的tcptraceroute,它不需要根权限。 http://www.thomas-guettler.de/scripts/tcptraceroute.py.txt 但不能显示中间跳的IP地址。但有时它是有用的,因为您可以猜测阻塞防火墙在哪里:在路由的开始或结束。 |
|
|
7
0
这个 mtrpacket package 可用于发送网络探测器,可执行ping或跟踪路由。因为它使用mtr命令行工具的后端,所以不需要将脚本作为根运行。 它还使用Asyncio的事件循环,因此您可以同时拥有多个正在进行的跟踪路由或ping,并在它们完成时处理它们的结果。 下面是一个跟踪路由到'example.com'的python脚本:
使用带有“ttl”的循环是因为传出数据包的“生存时间”决定了数据包在过期并将错误发送回原始源之前将要传输的网络跃点数。 |