免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 15274 | 回复: 10
打印 上一主题 下一主题

[算法] 求一个对ip地址的哈希算法,在线等!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-11-04 16:25 |只看该作者 |倒序浏览
求一个哈希算法,要求对ip地址进行哈希,哈希后的值在0 - 16383 之间,碰撞越少越好!!!

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2011-11-04 16:27 |只看该作者
就以最后14位好了

论坛徽章:
2
水瓶座
日期:2013-09-04 15:09:57白羊座
日期:2014-04-17 16:48:13
3 [报告]
发表于 2011-11-04 16:36 |只看该作者
IPv4的话地址就是一个32位int,碰撞要看你IP地址的来源范围是什么?

论坛徽章:
0
4 [报告]
发表于 2011-11-04 16:39 |只看该作者
对不起,刚才说的有点笼统了,其实开始是这样做的,直接掩掉高18位,取低14位,但如果ip地址的低14位相同,高18位变化的话,比如1.1.1.1  和 2.1.1.1 ,两个地址哈希出的值是一样的,这样冲突就非常多了! 请问有没有好的办法可以解决!!

论坛徽章:
0
5 [报告]
发表于 2011-11-04 16:42 |只看该作者
我想有没有什么算法 可以把高18位任意比特的变化,和低14位 任意比特的变化综合在一起,然后再哈希出一个值,然后再取下模?

论坛徽章:
2
水瓶座
日期:2013-09-04 15:09:57白羊座
日期:2014-04-17 16:48:13
6 [报告]
发表于 2011-11-04 16:50 |只看该作者
问题就是你需要hash的ip地址有没有什么规律,完全随机的话直接截取14位显然是最优的方法了。你不管怎么弄碰撞率都是一样的。

论坛徽章:
0
7 [报告]
发表于 2011-11-04 17:15 |只看该作者
1.1.1.1 和 2.1.1.1 不碰撞!应该怎么实现!

论坛徽章:
2
水瓶座
日期:2013-09-04 15:09:57白羊座
日期:2014-04-17 16:48:13
8 [报告]
发表于 2011-11-04 17:19 |只看该作者
取头14bit

论坛徽章:
0
9 [报告]
发表于 2011-11-04 17:31 |只看该作者

论坛徽章:
0
10 [报告]
发表于 2011-11-04 17:34 |只看该作者
还是这么说吧,可能我没说清楚, 如果ip地址一段时间从 1.1.1.1 递增1,一直加到 1.1.1.255, 然后呢又从2.1.1.1 递增到了2.1.1.255,单纯取低14位就会碰撞了!现在我只想问个算法, 能把高18位中的变化也考虑进来!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP