DNS/実装/python/dnslib/example/client/miniについて、ここに記述してください。

# -*- coding: utf-8 -*-

"""
    DNS Client - DiG-like CLI utility.

    Usage: python -m dnslib.client [options|--help]

"""
from __future__ import print_function

import binascii,code,pprint,sys

from dnslib.dns import DNSRecord,DNSHeader,DNSQuestion,DNSError,QTYPE,EDNS0
from dnslib.digparser import DigParser

if __name__ == '__main__':

    import sys,time
    # Construct request
    try:
        q = DNSRecord(q=DNSQuestion('qmail.jp', getattr(QTYPE,'NS')))
        q.add_ar(EDNS0(flags="do",udp_len=4096))
        q.header.ad = 1

        address = '8.8.8.8'
        port = 53

        # print query
        print(q)
        print()

        a_pkt = q.send(address,port,tcp=False)
        a = DNSRecord.parse(a_pkt)

        if a.header.tc :
            # Truncated - retry in TCP mode
            a_pkt = q.send(address,port,tcp=True)
            a = DNSRecord.parse(a_pkt)

        short = False    
        if short:
            print(a.short())
        else:
            print(";; Got answer:")
            print(a)
            print()

    except DNSError as e:
        p.error(e)

MoinQ: DNS/実装/python/dnslib/example/client/mini (last edited 2021-02-27 07:02:55 by ToshinoriMaeno)