Sto usando dns.resolver
da dnspython.Impostare server DNS specifico utilizzando dns.resolver (pythondns)
È possibile impostare l'indirizzo IP del server da utilizzare per le query?
Sto usando dns.resolver
da dnspython.Impostare server DNS specifico utilizzando dns.resolver (pythondns)
È possibile impostare l'indirizzo IP del server da utilizzare per le query?
Anche se questo è un po 'un vecchio thread, salterò dentro. Mi sono imbattuto nella stessa sfida e ho pensato di condividere la soluzione. Quindi, in pratica il file di configurazione popolerebbe la variabile di istanza 'nameservers' del dns.resolver.Resolver che stai usando. Quindi, se si vuole costringere il tuo Resolver di utilizzare un particolare server dei nomi, si può fare in questo modo direcly:
import dns.resolver
my_resolver = dns.resolver.Resolver()
# 8.8.8.8 is Google's public DNS server
my_resolver.nameservers = ['8.8.8.8']
answer = my_resolver.query('google.com')
Speranza qualcuno trova utile.
Non si specifica nella domanda, ma supponendo che si stia utilizzando the resolver from dnspython.org, la documentazione indica che si desidera impostare l'attributo nameservers
sull'oggetto Resolver.
Sebbene possa essere più semplice fornire un file /etc/resolv.conf per passare allo constructor's filename
argument.
'/etc/resolv.conf' non è usato su Windows. – jfs
Sì, lo è.
Se si utilizza la funzione di convenienza dns.resolver.query()
come questo
import dns.resolver
r = dns.resolver.query('example.org', 'a')
è possibile ri-inizializzare il risolutore di default tale nameserver così specifico (o una lista) è usato, ad esempio:
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')
Oppure è possibile utilizzare un oggetto resolver separato solo per alcune query:
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')
È possibile aggiungere un collegamento a la libreria che fornisce 'dns.resolver'? Inoltre, non sarebbe nei documenti 'dns.resolver'? – Wolph
@WoLpH In ubunty c'è un pacchetto chiamato 'python-dnspython' – UlfR