python 多线程ping测试_从线程ping多个ip时Python ICMP ping实现?

在Python中使用多线程进行ping测试时,发现ping返回的接收地址可能与目标IP不一致。通过打印接收地址,发现在不同线程中ping离线和在线IP时,收到的回应地址错误地显示为同一地址。问题在于,接收的ping地址并不总是与目标IP相同。目前尚未确定这是预期行为还是代码中的一个bug,寻求解决方案或是否存在无此问题的替代Python ICMP ping实现。
摘要由CSDN通过智能技术生成

我一直在Windows上使用jedie's python ^{} implementation。我可能错了,但是当从不同的线程ping两台计算机(A和B)时,ping将返回它接收到的第一个ping,而不考虑源。在

我在receive_one_ping中添加了一行代码:(第134行或类似行)recPacket, addr = my_socket.recvfrom(1024) # Existing line

print "dest: {}, recv addr: {}.".format(dest_addr, addr) # New line

这使我们可以看到我们正在接收的ping地址。(应该与目标IP相同,对吗?)在

测试:

ping1()ping已知的脱机IP(1.2.3.4),

ping2()ping已知的在线IP(192.168.1.1-我的路由器)

^{pr2}$

现在如果我们一起做的话:(为了简单起见,使用计时器)>>> from threading import Timer

>>> t1 = Timer(1, ping1)

>>> t2 = Timer(1, ping2)

>>> t1.start(); t2.start()

>>> Offline:Online: dest: 192.168.1.1, recv addr: ('192.168.1.1', 0).dest: 1.2.3.4, recv addr: ('192.168.1.1', 0).

0.0004508952953870.000423517514093

它有点破损(由于打

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值