很容易将IPv4地址映射到它们的控制RIR (ARIN、RIPE等)因为IANA以/8块的形式分发v4地址。我可以编写一个函数,该函数接受任意的IPv4地址,并通过检查该地址的前8位来计算出正确的RIR。
然而,根据http://www.iana.org/assignments/ipv6-unicast-address-assignments/ipv6-unicast-address-assignments.txt的说法,全球单播IPv6地址是以不同大小的块分发的。我看不到任何押韵或理由为什么这些区块被分配到它们的大小。这可能会使编写上述函数的IPv6版本变得非常繁琐。
有没有一种简单的方法来区分哪个(全局单播) IPv6地址属于哪个RIR?或者我必须遍历所有分配的netblock,看看我的地址是否被其中一个覆盖了?
谢谢!
发布于 2012-06-29 06:21:35
唯一的方法是与您提到的列表匹配:解析列表并将您的地址与条目匹配。应该只有一个条目匹配;这就是您的结果。
为什么块有不同的大小?好吧,我认为这是有历史原因的。首先,只分配2001:地址;分配的块大小可能是根据客户的不同需求而分配的。很快,他们发现/23太小了。最终(在2006年左右),他们为每个RIR分配了一个/12,现在必须看看如何与之相处。这应该会持续一段时间;如果它们都被使用了,就会分配新的块。
https://stackoverflow.com/questions/11252538
复制相似问题