summaryrefslogtreecommitdiff
path: root/apps/script.py
blob: f73b0d509594bbe1ef52b2afd4737b6ec477aefd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# 调用不同的脚本
import time
import apps.utiltcping as utping
from flask import Blueprint,request
from icmplib import ping
from dns import resolver
import dns.nameserver

bp=Blueprint("script",__name__,url_prefix="/script")

@bp.route("/test")
def hello():
    return "hello"

# icmp时延测试
@bp.route("/icmpdelay")
def icmpdelay():
    addr=request.args.get("ip")
    host=ping(addr,count=2,interval=0.1,timeout=2)
    return str(host.avg_rtt)


@bp.route("/tcpdelay")
def tcpdelay():
    addr=request.args.get("ip")
    port=request.args.get("port",default=53)
    tdelay=utping.cli(addr,port,2,2)
    return str(tdelay)

# dns时延测试函数,返回执行完成时的时间戳
@bp.route("/dnsdelay")
def dnsdelay():
    addr = request.args.get("ip")
    port = request.args.get("port",default=53)
    domain = request.args.get("domain", default="www.baidu.com")
    qtype=request.args.get("qtype",default="A")

    start_time=time.time()
    # 解析器配置
    myResolver = resolver.Resolver()
    myResolver.nameservers = [dns.nameserver.Do53Nameserver(addr, port=port)]

    # 开始解析
    ans=myResolver.resolve(domain,qtype,lifetime=4)
    stop_time=time.time()
    t=stop_time-start_time
    return  str(int(t*1000))