基于mongodb构建本地ipv4数据库

admin 2025年2月11日19:46:42评论8 views字数 864阅读2分52秒阅读模式
构建本地ipv4数据库,大致的想法是生产1.0.0.0至255.255.255.255之间的所有ip地址,在使用一些库找到每个ip地址对应的归属地,保存在本地数据库中,整个数据库大约42亿行数据,这是一个比较大的挑战。
基于mongodb构建本地ipv4数据库
方案一、使用mysql数据库
单张表的数据超过1000万行后,查询显得非常的慢,将字段建立索引后有一些改善,但仍然不理想。现阶段分别用255张表格对所有的数据进行了存储,每张表数据了超过1000万行,经过慎重考虑,打算将数据迁移到mongodb。
方案二、使用mongodb
现已完成将约7亿行数据转存到mongodb中。经查资料,显示mongodb支持42亿级别的大数据存储。这里简单描述从mysql数据库向mongodb迁移的过程。
以上面的截图为例,可以看到当前mongodb中最新的一行ip是43.53.23.203,回到mysql数据库中找到该行ip在表格中的位置。
基于mongodb构建本地ipv4数据库
得到id为3480500,接下来编写python脚本将table43中从第3480501行开始的数据转存至mongodb
基于mongodb构建本地ipv4数据库
基于mongodb构建本地ipv4数据库
按照这样速度,预计再用10天左右的时间,可以将整个数据库构建完成。
支撑这样的一个程序环境,对电脑的硬件有比较高的要求。以现在用的这台机器,内存是48G,固态硬盘1T,企业级机械硬盘16T。在使用mysql数据库时,占用空间比较大,很快将1T的固态硬盘撑满,临时买一块16T硬盘,而且是非常有必要的,因为现在的数据库对ip地址归属地仅仅到省市级别,如果需要更详细的信息,后面需要另外开发爬虫程序从公开的网站上继续爬数据,另外在这个数据库的基础上开发一些应用,需要使用很大的硬盘空间。
构建这样的数据库有什么作用?现在常见的在线或者离线ip查询是以给定ip地址查归属地,而不能根据归属地反查ip,而在本地构建这样的一套数据库,将会很方便的查询到某一片区域内的全部ip地址,进而可以针对性的挖掘这些ip地址的资产信息,基于这种需求,非常有必要去投入时间开发。

原文始发于微信公众号(核点点):基于mongodb构建本地ipv4数据库

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月11日19:46:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   基于mongodb构建本地ipv4数据库https://cn-sec.com/archives/3642672.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息