I am using dns.resolver
from dnspython.
Is it possible to set the IP address of the server to use for queries ?
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')