⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gen-data-queryperf.py

📁 非常好的dns解析软件
💻 PY
字号:
#!/usr/bin/python## $Id: gen-data-queryperf.py,v 1.1 2003/04/10 02:33:40 marka Exp $## Contributed by Stephane Bortzmeyer <bortzmeyer@nic.fr>## "A small tool which may be useful with contrib/queryperf. This script#  can generate files of queries, both with random names (to test the#  behaviour with NXdomain) and with domains from a real zone file."#import sysimport getoptimport randomimport reldh = []# Lettersfor i in range(97, 122):    ldh.append(chr(i))# Digitsfor i in range(48, 57):    ldh.append(chr(i))# Hyphenldh.append('-')maxsize=10tld='org'num=4percent_random = 0.3gen = Nonezone_file = Nonedomains = {}domain_ns = "^([a-z0-9-]+)(\.([a-z0-9-\.]+|)|)( +IN|) +NS"domain_ns_re = re.compile(domain_ns, re.IGNORECASE)def gen_random_label():    label = ""    for i in range(gen.randint(1, maxsize)):        label = label + gen.choice(ldh)    return labeldef make_domain(label):    return "www." + label + "." + tld + "     A"def usage():    sys.stdout.write("Usage: " + sys.argv[0] + " [-n number] " + \                     "[-p percent-random] [-t TLD]\n")    sys.stdout.write("       [-m MAXSIZE] [-f zone-file]\n")    try:    optlist, args = getopt.getopt(sys.argv[1:], "hp:f:n:t:m:",                                  ["help", "percentrandom=", "zonefile=",                                   "num=", "tld=",                                   "maxsize="])    for option, value in optlist:        if option == "--help" or option == "-h":            usage()            sys.exit(0)        elif option == "--number" or option == "-n":            num = int(value)        elif option == "--maxsize" or option == "-m":            maxsize = int(value)        elif option == "--percentrandom" or option == "-p":            percent_random = float(value)        elif option == "--tld" or option == "-t":            tld = str(value)        elif option == "--zonefile" or option == "-f":            zone_file = str(value)        else:            error("Unknown option " + option)except getopt.error, reason:    sys.stderr.write(sys.argv[0] + ": " + str(reason) + "\n")    usage()    sys.exit(1)    if len(args) <> 0:    usage()    sys.exit(1)gen = random.Random()if zone_file:    file = open(zone_file)    line = file.readline()    while line:        domain_line = domain_ns_re.match(line)        if domain_line:            domain = domain_line.group(1)            domains[domain] = 1        line = file.readline()    file.close()for i in range(num):    if zone_file:        if gen.random() < percent_random:            print make_domain(gen_random_label())        else:            print make_domain(gen.choice(domains.keys()))    else:        print make_domain(gen_random_label())

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -