J'utilise dns.resolver
de dnspython.Définir un serveur DNS spécifique à l'aide de dns.resolver (pythondns)
Est-il possible de définir l'adresse IP du serveur à utiliser pour les requêtes?
J'utilise dns.resolver
de dnspython.Définir un serveur DNS spécifique à l'aide de dns.resolver (pythondns)
Est-il possible de définir l'adresse IP du serveur à utiliser pour les requêtes?
Bien que ce soit un peu un vieux fil, je vais sauter dedans. Je me suis heurté au même défi et j'ai pensé que je partagerais la solution. Donc, fondamentalement, le fichier de configuration peuplerait la variable d'instance 'nameservers' du fichier dns.resolver.Resolver que vous utilisez. Par conséquent, si vous voulez forcer votre résolveur à utiliser un serveur de noms particulier, vous pouvez le faire direcly comme ceci: quelqu'un
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')
Hope trouve utile.
Vous ne spécifiez pas dans votre question, mais en supposant que vous utilisez the resolver from dnspython.org, la documentation indique que vous souhaitez définir l'attribut nameservers
sur l'objet résolveur.
Bien qu'il soit plus facile de fournir un fichier /etc/resolv.conf-style à transmettre au constructor's filename
argument.
'/etc/resolv.conf' n'est pas utilisé sous Windows. – jfs
Oui, c'est le cas.
Si vous utilisez la fonction de commodité dns.resolver.query()
comme ce
import dns.resolver
r = dns.resolver.query('example.org', 'a')
vous pouvez ré-initialiser le résolveur par défaut comme un serveur de noms spécifiques (ou une liste) est utilisée, par exemple:
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')
Ou vous pouvez utiliser un objet résolveur séparé juste pour certaines requêtes:
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')
Pouvez-vous ajouter un lien vers la bibliothèque qui fournit 'dns.resolver'? Aussi, ne serait-ce pas dans les documents 'dns.resolver'? – Wolph
@WoLpH Dans ubunty il y a un paquet nommé 'python-dnspython' – UlfR