2016-05-03 54 views
2

默認情況下,Twisted在連接到Linux系統上的網站時讀取/etc/hosts。我只是想知道哪個扭曲文件選擇/etc/hosts,所以我可以進入並將其更改爲我選擇的文件?如何讀取/ etc/hosts?

+1

的可能的複製[扭曲變化hosts文件(http://stackoverflow.com/questions/36960315/twisted-change-hosts-file) – castis

+1

我猜它只是一個問題沒有太多的脂肪酶知道答案:( – Cristian

+1

你確定_Twisted_讀取該文件嗎?也許你的操作系統上的網絡堆棧只是在查找IP地址時尊重該文件? – Chris

回答

2

您正在查找的代碼是在Resolver Object line 621。如果您想更改您傳遞所需主機文件的解析程序的行爲,如下所示。

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