Skip to content

Latest commit

 

History

History
26 lines (16 loc) · 1.35 KB

upgrade_logstash_geoip.md

File metadata and controls

26 lines (16 loc) · 1.35 KB

使用新浪内部比较准确的国内ip库代替maxmind的geoip库过程

目的

使用更准确的ip库更好地为ELK的用户服务。

我们需要做的是:

  • 1
  • 2
  • 3

我们最终实现了

  • maxmind various language client API

由于公司不希望把这个工具开源,所以,很遗憾的只能和大家说说思路了,但是其中重要的内容我都会提及。

如何把[start ip, end_ip]表示的ip范围转换为用ip network表示的ip范围。

即 将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.