createResolver()在扭曲不起作用 [英] createResolver() in twisted not working
问题描述
installResolver
函数来选择脚本读取其主机文件的位置: from twisted.internet import reactor
来自twisted.web import proxy,server
来自twisted.python import log
来自twisted.names import client
def createResolver(servers = None,resolvconf = None,hosts = None):
如果platform.getType()=='posix':
如果resolvconf为无:
resolvconf = b'/ etc / resolv.conf'
如果主机为None:
hosts = b'/ root / example'
theResolver = Resolver(resolvconf,servers)
hostResolver = hostsModule.Resolver(hosts)
else:
如果主机为None:
hosts = r'c:\windows\hosts'
from twisted.internet import反应堆
bootstrap = _ThreadedResolverImpl(reactor)
hostResolver = hostsModule.Resolver(hosts)
theReso lver = root.bootstrap(bootstrap,resolverFactory = Resolver)
L = [hostResolver,cache.CacheResolver(),theResolver]
return resolve.ResolverChain(L)
site = server.Site(proxy.ReverseProxyResource('www.example.com',80,'.encode(utf-8)))
reactor.listenTCP(80,site)
reactor.run()
每当我运行这个脚本,它只是超时,不工作。有人会告诉我我在做错什么吗?谢谢!!
createResolver()扭曲不起作用
你需要传入你想要阅读的hosts文件,你需要确保它是可读的,即它在哪里 / root /例如
意味着您需要以root身份运行才能读取它。您不需要覆盖该方法。我明天会安装它,尝试一下。
创建一个文件 / tmp / example
即我使用
127.0.0.6 twistfoo.com
这是工作代码
from twisted.names import client
来自twisted.internet import reactor
def do_lookup(domain):
hosts =/ tmp / example
resolver = client.createResolver(servers = None,resolvconf = hosts =/ tmp / example)
d = resolver.getHostByName(domain)
d.addBoth(lookup_done)
def lookup_done(result):
print
reactor.stop()
domain = b'twistfoo.com'
reactor.callLater(0,do_lookup,domain)
reactor.run()
在命令行上运行,您将看到输出
127.0.0.6
I have a simple proxy script where I use installResolver
function to choose where the script reads its hosts file:
from twisted.internet import reactor
from twisted.web import proxy, server
from twisted.python import log
from twisted.names import client
def createResolver(servers=None, resolvconf=None, hosts=None):
if platform.getType() == 'posix':
if resolvconf is None:
resolvconf = b'/etc/resolv.conf'
if hosts is None:
hosts = b'/root/example'
theResolver = Resolver(resolvconf, servers)
hostResolver = hostsModule.Resolver(hosts)
else:
if hosts is None:
hosts = r'c:\windows\hosts'
from twisted.internet import reactor
bootstrap = _ThreadedResolverImpl(reactor)
hostResolver = hostsModule.Resolver(hosts)
theResolver = root.bootstrap(bootstrap, resolverFactory=Resolver)
L = [hostResolver, cache.CacheResolver(), theResolver]
return resolve.ResolverChain(L)
site = server.Site(proxy.ReverseProxyResource('www.example.com', 80, ''.encode("utf-8")))
reactor.listenTCP(80, site)
reactor.run()
Whenever I run this script, It just times out and doesn't work. Could anybody tell me what it is I'm doing wrong? thanks!!
createResolver() in twisted not working
You need to pass in the hosts file you want it to read and you need to make sure that it's readable ie where it is /root/example
means you need to be running as root to read it. You don't need to override the method. I'll install it tomorrow and try it.
Create a file /tmp/example
with an entry in it ie I used
127.0.0.6 twistfoo.com
This is working code
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()
Run this on command line and you will see the output
127.0.0.6
这篇关于createResolver()在扭曲不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!