我有一个简单的代理脚本,其中我使用installResolver
函数来选择脚本读取其主机文件的位置:
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()
每当我运行这个脚本时,它就会超时而不起作用。有人能告诉我我做错了什么吗?谢谢!!你知道吗
您需要传入要读取的hosts文件,并确保它可读(即它所在的位置)
/root/example
意味着您需要以root身份运行才能读取它。你不需要重写这个方法。我明天再安装试试。你知道吗创建一个文件
/tmp/example
,其中包含我使用的条目这是工作代码
在命令行上运行这个命令,您将看到输出
相关问题 更多 >
编程相关推荐