2016-05-03 2 views
2

По умолчанию Twisted читает /etc/hosts при подключении к веб-сайтам в системах Linux. Мне просто интересно, какой из скрученных файлов выбирает /etc/hosts, поэтому я могу войти и изменить его в файл по своему выбору?Как скручивается чтение/etc/hosts?

+1

Возможный дубликат [Twisted изменения файл хосты] (http://stackoverflow.com/questions/36960315/twisted-change-hosts-file) – castis

+1

я думаю, его просто вопрос не так много PPL знают ответ :( – Cristian

+1

Вы уверены, что _Twisted_ читает этот файл? Возможно, сетевой стек на вашей ОС просто уважает этот файл при поиске IP-адресов? – Chris

ответ

2

Код, который вы ищите, находится в Resolver Object line 621. Если вы хотите изменить поведение распознавателя, вы передаете требуемый файл hosts следующим образом.

from twisted.names import client 
from twisted.internet import reactor 

def do_lookup(domain): 
    hosts = "/tmp/example" 
    resolver = client.createResolver(servers=None, resolvconf=None, hosts="/tmp/example") 
    d = resolver.getHostByName(domain) 
    d.addBoth(lookup_done) 

def lookup_done(result): 
    print(result) 
    reactor.stop() 

domain = b'twistfoo.com' 
reactor.callLater(0, do_lookup, domain) 
reactor.run() 
+0

Я на самом деле попытался использовать это, но он просто заставляет мой тайм-аут, http://stackoverflow.com/questions/36971934/createresolver-in-twisted-not-working. Если вы знаете, почему это делает это, это было бы потрясающе! – Cristian

+0

Вы попробовали это. Это сработало для меня. – Harry