summaryrefslogtreecommitdiff
path: root/apps/delay.py
diff options
context:
space:
mode:
author韩丁康 <[email protected]>2023-11-13 20:22:01 +0800
committer韩丁康 <[email protected]>2023-11-13 20:22:01 +0800
commita58e6ca2b7c79811612ae4b760c6be8b9a67c141 (patch)
tree3b543a269dcc7bde566008de215ca79af04dfd1d /apps/delay.py
parentf7550e9192ed5aa7887865b7c65ffe0a9fb7e705 (diff)
时延选项配置
Diffstat (limited to 'apps/delay.py')
-rw-r--r--apps/delay.py59
1 files changed, 49 insertions, 10 deletions
diff --git a/apps/delay.py b/apps/delay.py
index f7cfe4a..2ca161c 100644
--- a/apps/delay.py
+++ b/apps/delay.py
@@ -7,10 +7,15 @@ from apiflask import APIFlask,APIBlueprint,Schema
from apiflask.fields import Integer,String,List,Nested,IP,Dict
from flask import request
import pandas as pd
+from requests.exceptions import Timeout
import numpy as np
bp=APIBlueprint("delay",__name__,url_prefix="/delay")
+icmp_delaytable={}
+tcp_delaytable={}
+dns_delaytable={}
+
class TestNode(Schema):
Id = Integer()
Name=String()
@@ -70,21 +75,55 @@ def get_pernode_delay(query_data,type):
'Type':type})
return {'delay_data':ans}
-# 向
+
def icmp_delay_query(target,addr):
- res=requests.get(url="http://"+addr+":2525/script/icmpdelay",params={'ip':target})
- print("icmp ok:"+addr+"-------"+res.text)
- return res.text
+ try:
+ res=requests.get(url="http://"+addr+":2525/script/icmpdelay",params={'ip':target},timeout=5)
+ print("icmp ok:" + addr + "-------" + res.text)
+ icmp_delaytable[addr+target]=res.text
+ return res.text
+ except Timeout:
+ # 如果存在旧数据
+ if addr+target in icmp_delaytable.keys():
+ pass
+ # 不存在则设0
+ else:
+ icmp_delaytable[addr + target]=0
+ return icmp_delaytable[addr + target]
+
def tcp_delay_query(target,addr):
- res = requests.get(url="http://" + addr + ":2525/script/tcpdelay", params={'ip': target,'port':53})
- print("tcp ok:" + addr + "-------" + res.text)
- return res.text
+ try:
+ res = requests.get(url="http://" + addr + ":2525/script/tcpdelay", params={'ip': target, 'port': 53}, timeout=5)
+ print("tcp ok:" + addr + "-------" + res.text)
+ tcp_delaytable[addr + target] = res.text
+ return res.text
+ except Timeout:
+ # 如果存在旧数据
+ if addr + target in tcp_delaytable.keys():
+ pass
+ # 不存在则设0
+ else:
+ tcp_delaytable[addr + target] = 0
+ return tcp_delaytable[addr + target]
+
+
def dns_delay_query(target,addr):
- res = requests.get(url="http://" + addr + ":2525/script/dnsdelay", params={'ip': target})
- print("dns ok:" + addr + "-------" + res.text)
- return res.text
+ try:
+ res = requests.get(url="http://" + addr + ":2525/script/dnsdelay", params={'ip': target},timeout=5)
+ print("dns ok:" + addr + "-------" + res.text)
+ dns_delaytable[addr + target] = res.text
+ return dns_delaytable[addr + target]
+ except Timeout:
+ # 如果存在旧数据
+ if addr + target in dns_delaytable.keys():
+ pass
+ # 不存在则设0
+ else:
+ dns_delaytable[addr + target] = 0
+ return dns_delaytable[addr + target]
+