take 'Connection Refused' as a successful ping probe

This commit is contained in:
King's Way 2021-07-03 15:26:39 +08:00
parent 05f9784b1e
commit fdf5f03a13
2 changed files with 18 additions and 7 deletions

@ -28,6 +28,7 @@ import re
import os import os
import sys import sys
import json import json
import errno
import subprocess import subprocess
import threading import threading
try: try:
@ -181,11 +182,16 @@ def _ping_thread(host, mark, port):
try: try:
b = timeit.default_timer() b = timeit.default_timer()
socket.create_connection((IP, port), timeout=1).close() socket.create_connection((IP, port), timeout=1).close()
pingTime[mark] = int((timeit.default_timer()-b)*1000) pingTime[mark] = int((timeit.default_timer() - b) * 1000)
packet_queue.put(1) packet_queue.put(1)
except: except socket.error as error:
lostPacket += 1 if error.errno == errno.ECONNREFUSED:
packet_queue.put(0) pingTime[mark] = int((timeit.default_timer() - b) * 1000)
packet_queue.put(1)
#elif error.errno == errno.ETIMEDOUT:
else:
lostPacket += 1
packet_queue.put(0)
if packet_queue.qsize() > 30: if packet_queue.qsize() > 30:
lostRate[mark] = float(lostPacket) / packet_queue.qsize() lostRate[mark] = float(lostPacket) / packet_queue.qsize()

@ -168,9 +168,14 @@ def _ping_thread(host, mark, port):
socket.create_connection((IP, port), timeout=1).close() socket.create_connection((IP, port), timeout=1).close()
pingTime[mark] = int((timeit.default_timer() - b) * 1000) pingTime[mark] = int((timeit.default_timer() - b) * 1000)
packet_queue.put(1) packet_queue.put(1)
except: except socket.error as error:
lostPacket += 1 if error.errno == errno.ECONNREFUSED:
packet_queue.put(0) pingTime[mark] = int((timeit.default_timer() - b) * 1000)
packet_queue.put(1)
#elif error.errno == errno.ETIMEDOUT:
else:
lostPacket += 1
packet_queue.put(0)
if packet_queue.qsize() > 30: if packet_queue.qsize() > 30:
lostRate[mark] = float(lostPacket) / packet_queue.qsize() lostRate[mark] = float(lostPacket) / packet_queue.qsize()