在特定站点上使用socket.gethostbyaddr(ip_addr)
时,获取主机名一直有问题。
我不会详细说明这不是为哪个网站工作。
因此,按名称获取主机对于我迄今为止尝试过的每个站点都很好,但是当我尝试从中获取站点名称时,会得到一个错误消息
正在进行host not found
。
如果有完整的数据,修复或替代方法会更好。如果没有解决办法,我只能把主机名漏掉。没什么大不了的。谢谢你的帮助。
# not full code
hostip = socket.gethostbyname(hostname)
print socket.gethostbyaddr(hostip)
Error: socket.herror: [Errno 11004] host not found
不是每个IP地址都有反向DNS。有时这是故意的,有时是因为你在看一个内部地址,而网络内部不需要它,所以不值得设置,有时有人只是搞砸了。
为什么会有人故意这么做?最常见的是,因为多个域名映射到同一个IP地址。
例如,一个共享的托管站点可能会为其三个客户(www.foo.com、www.bar.com和www.baz.com)映射站点,全部映射到1.2.3.4。HTTP在一个
Host:
头中为您提供了所请求的主机名,因此它可以确定您的浏览器要转到哪个站点。但是除了HTTP(或其他一些更高级别的协议)之外,没有办法找出1.2.3.4中的三个名称。所以,他们不能提供任何对你有用的东西。可能还有一个类似shared_.hostingcompany.com的名称,对他们自己的IT人员很有用,在这种情况下,他们可能会提供这个名称,但在其他情况下,他们不需要任何反向DNS。相关问题 更多 >
编程相关推荐