我正在运行一个networking爬虫,我从我的数据中心收到一些关于指向私有IP的连接的报告(如10.0.0.1)。 我已经对我的爬虫程序代码实施了回送/私人ip检查,并且我意识到很多域都parsing为以下IPv6地址。
我使用自己的绑定DNScaching,当我尝试访问某些其他计算机/networking上的这些域时,我可以访问它们而不会出现任何问题,并且所有DNS设置都看起来不错。
如上所述,将这些域parsing为私有/回送IPv6地址的原因是什么? 我能做些什么来检查与这个问题有关的其他事情?
这可能是因为我的BIND DNScaching? 这可能是因为我的数据中心configuration错误的路由器?
非常感谢你提前…
解决scheme: @kasperd在这个问题上帮了我很大的忙,他发现这是因为我的代码执行错误。
你在你的问题上做了一些不正确的假设。
大部分的IPv6地址空间是保留的,包括您提到的两个地址所属的6000::/3范围。
如果有任何保留地址出现在AAAAlogging中,则表示configuration无效。 这可能会导致连接问题,但正确实施的客户端将回退到使用该域的其他地址之一。
在AAAAlogging中出现无效地址的第一个明显原因是,首先configurationAAAAlogging的人犯了一个错误。 如果你提到一个域名,我们可能会告诉你是否是这种情况。
也可能通过错误configurationcachingDNS服务器来产生无效的AAAAlogging。 我认为绑定有足够的灵活性来引入这样的问题。
错误configuration的路由器本身不足以产生这样的问题。 但许多路由器具有与路由无关的附加function,因此理论上可能的是,路由器可能具有function,如果使用不正确会产生无效logging。
如果仔细观察无效的IPv6地址,您将看到每个八位字节都在可打印的ASCII字符( 20 – 7e )的范围内。 这可能提供有关无效地址源自何处的提示。
在聊天中debugging摘要。 问题是由于搜寻器代码中的错误:
ip = ipaddress.ip_address(hostname)
该行将解释任何恰好是16个字符长的主机名,就像它是一个IPv6地址一样。 主机名上没有执行DNSparsing。