2010-10-09 15 views

cevap

53

, içeri sıçrar. Aynı tehdide karşı çarpmış ettik ve ben bir çözüm paylaşmak istedim. Yani, temelde yapılandırma dosyası kullanmakta olduğunuz dns.resolver.Resolver 'nameservers' instance değişkeni doldurur. Belirli bir ad sunucusunu kullanmak için Çözümleyici zorlamak istiyorsanız Dolayısıyla, böyle direcly yapabilirsiniz:

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') 

Umut birisi yararlı bulur.

+3

'/ etc/resolv.conf' veya Windows kayıt defterini okumayı önlemek için' configure = False' komutunu kullanabilirsiniz. – jfs

+0

'dnspython' paketi yalnızca Python 2 üzerinde çalışır. – Lukas

+0

Git deposunu kontrol edebilir ve şubeyi manuel olarak" python3 "olarak değiştirebilirsiniz. – Lukas

0

Sorunuzda belirtme, ancak the resolver from dnspython.org kullandığınızı varsayarak, belge, Resolver nesnesinde nameservers özniteliğini ayarlamak istediğinizi belirtir.

o constructor's filename argument geçmek için /etc/resolv.conf-style dosyayı temin etmek daha kolay olabilir rağmen. Bu biraz eski bir iş parçacığı olsa

+0

'/etc/resolv.conf' adlı bir paket Windows'ta kullanılmamaktadır. – jfs

1

Evet, öyle.

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') 

: Bu

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

gibi kolaylık fonksiyonunu dns.resolver.query() kullanırsanız

varsayılan çözümleyicinizi örneğin belirli bir alan adı sunucusu (veya bir liste) kullanılır, örneğin yeniden başlatabilir Veya yalnızca bazı sorgular için ayrı bir resolver nesnesini kullanabilirsiniz:

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') 
İlgili konular