Set specific DNS server using dns.resolver (pythondns)

后端 未结 4 1913
孤街浪徒
孤街浪徒 2020-12-03 02:22

I am using dns.resolver from dnspython.

Is it possible to set the IP address of the server to use for queries ?

4条回答
  •  离开以前
    2020-12-03 03:11

    Yes, it is.

    If you use the convenience function dns.resolver.query() like this

    import dns.resolver
    r = dns.resolver.query('example.org', 'a')
    

    you can re-initialize the default resolver such such a specific nameserver (or a list) is used, e.g.:

    import dns.resolver
    dns.resolver.default_resolver = dns.resolver.Resolver(configure=False)
    dns.resolver.default_resolver.nameservers = ['8.8.8.8', '2001:4860:4860::8888',
                                                 '8.8.4.4', '2001:4860:4860::8844' ]
    r = dns.resolver.query('example.org', 'a')
    

    Or you can use a separate resolver object just for some queries:

    import dns.resolver
    res = dns.resolver.Resolver(configure=False)
    res.nameservers = [ '8.8.8.8', '2001:4860:4860::8888',
                        '8.8.4.4', '2001:4860:4860::8844' ]
    r = res.query('example.org', 'a')
    

提交回复
热议问题