中国大陆IP过滤器-Java实现
【摘要】 原文地址: https://copyfuture.com/blogs-details/201912080042520285sdvdbajzqwolso
概述
本篇讲解如何快速判断IPV4地址是否在大陆境内的IP地址。
中国IPV4的地址现在大约是3亿4千万个。
github仓库地址,源码和ip地址都在里面。 https://github.com/chenhaox...
原文地址:
https://copyfuture.com/blogs-details/201912080042520285sdvdbajzqwolso
概述
本篇讲解如何快速判断IPV4地址是否在大陆境内的IP地址。
中国IPV4的地址现在大约是3亿4千万个。
github仓库地址,源码和ip地址都在里面。
https://github.com/chenhaoxiang/china-ip-filter
目前最新是2019年11月30日,境内所有ip范围。
后面会持续更新和维护
欢迎大伙star
方法一
最简单方法,消耗大量内存,土豪方法。
在内存中将3亿4千万IP全部存储到Set中。
如果按照32个字节一个IP来算,大约需要10G左右。
这种方法就不进行介绍了。
方法二
将IP进行拆分为4段。a、b、c、d段
分段进行匹配,相较于方法一可以节省3/4的空间,但是需要的内存还是很大。
按照树形结构进行存储,a匹配才进行b的匹配,b匹配再进行c的匹配,依次匹配
只有abcd段完全匹配才说明IP在集合中
方法三
通过CIDR格式表示的IPV4地址范围进行处理
CIDR及地址块计算
IP地址表示法:
IP地址 ::&
文章来源: chenhx.blog.csdn.net,作者:谙忆,版权归原作者所有,如需转载,请联系作者。
原文链接:chenhx.blog.csdn.net/article/details/103441363
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)