如何测量scapy中发送和接收的时间?
How to measure time from send and receive in scapy?
我在 scapy 中编写了这样的代码来进行简单的 ping - 没什么特别的,但看起来很有希望。
def ping(ip):
answer = sr1(IP(dst=ip) / ICMP())
如何在 scapy 中测量从发送到接收的行程时间。问题很简单,但也很有必要学起来。我在互联网和文档中搜索了一些解决方案,但没有效果。
你能帮忙吗?
完整代码如下所示,但测量 ping 太长了。
import time
from scapy.layers.inet import ICMP, IP
from scapy.sendrecv import sr1, sr
def ping(ip):
packet = IP(dst=ip) / ICMP()
t0 = time.perf_counter()
answer = sr1(packet)
t1 = time.perf_counter()
print(t1 - t0)
answer.show()
answer[ICMP].show()
ping('192.168.1.1')
t1 - t0 = 0.12669169999999985s
的结果。
ping.exe = 4ms
有问题。
您应该使用 sent_time
参数。例如,如果您使用 sr
,您可以这样做:
ans, unans = sr(IP(dst="www.google.com")/ICMP())
timestamp = ans[0][1].time - a[0][0].sent_time
在你的例子中:
packet = IP(dst=ip)/ICMP()
a = sr1(packet)
timestamp = a.time - packet.sent_time
也可以
我在 scapy 中编写了这样的代码来进行简单的 ping - 没什么特别的,但看起来很有希望。
def ping(ip):
answer = sr1(IP(dst=ip) / ICMP())
如何在 scapy 中测量从发送到接收的行程时间。问题很简单,但也很有必要学起来。我在互联网和文档中搜索了一些解决方案,但没有效果。
你能帮忙吗?
完整代码如下所示,但测量 ping 太长了。
import time
from scapy.layers.inet import ICMP, IP
from scapy.sendrecv import sr1, sr
def ping(ip):
packet = IP(dst=ip) / ICMP()
t0 = time.perf_counter()
answer = sr1(packet)
t1 = time.perf_counter()
print(t1 - t0)
answer.show()
answer[ICMP].show()
ping('192.168.1.1')
t1 - t0 = 0.12669169999999985s
的结果。
ping.exe = 4ms
有问题。
您应该使用 sent_time
参数。例如,如果您使用 sr
,您可以这样做:
ans, unans = sr(IP(dst="www.google.com")/ICMP())
timestamp = ans[0][1].time - a[0][0].sent_time
在你的例子中:
packet = IP(dst=ip)/ICMP()
a = sr1(packet)
timestamp = a.time - packet.sent_time
也可以