使用更准确的ip库更好地为ELK的用户服务。
- 1
- 2
- 3
- maxmind various language client API
由于公司不希望把这个工具开源,所以,很遗憾的只能和大家说说思路了,但是其中重要的内容我都会提及。
即 将1.4.5.0 ~ 1.4.5.255表示为1.4.5.0/24
需要提示1点:需要保证这两种表示方式的等价转换,用network表示的ip范围需要与用start_ip , end_ip表示所包含的ip范围完全相同,不能多,不能少,否则就出错了。因此可能存在需要多个network才能表示一个ip范围的情况,如:[1.4.5.0 , 1.4.7.255] <=> [1,4.5.0/24, 1.4.6.0/24]。[1.4.5.0 , 1.4.7.255]可以用1.4.4.0/22表示吗?当然不能,否则[1.4.4.0, 1.4.4.255]范围内的ip也会被错误得包含入内。
我们的思路是:用另一个相似的问题域来解决问题——在二叉树上寻找两个叶子结点最大父节点。这两个问题域之间是如何建立联系的?
另外还附加了一个条件,最大父节点的,它是一个btree,它的任何一个leaf不能是ip范围以外的ip。
Written with StackEdit.