我在使用时获取主机名时遇到问题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_1234.hostingcompany.com这样的名称,这对他们自己的IT人员很有用,在这种情况下他们可能会提供该名称,但除此之外,他们不会为任何反向DNS而烦恼。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)