检查 ipv6 是否在范围内

2023-12-28

我有maxmind的ipv6数据。这是我当前的表(带有示例数据):

+---------------+------------+
|    network    | geoname_id |
+---------------+------------+
| 2001:208::/32 |        123 |
| 2001:218::/32 |       4312 |
+---------------+------------+

Using 他们的转换器 https://github.com/maxmind/geoip2-csv-converter,我可以创建一个network_start_ipand network_last_ip列:

+------------------+----------------------------------------+------------+
| network_start_ip |            network_last_ip             | geoname_id |
+------------------+----------------------------------------+------------+
| 2001:200::       | 2001:200:ffff:ffff:ffff:ffff:ffff:ffff |        123 |
| 2001:208::       | 2001:208:ffff:ffff:ffff:ffff:ffff:ffff |       4312 |
+------------------+----------------------------------------+------------+

我期待这样的事情会起作用(尽管它可能比其他方法慢):

SELECT b.geoname_id FROM blocks b 
WHERE HEX(INET6_ATON('2001:201:ffff:ffff:ffff:ffff:ffff:ffff')) BETWEEN HEX(b.network_start_ip) AND HEX(b.network_last_ip)

那么,我错过了什么?另外,存储 ipv6 地址(范围)的最佳方式是什么

谢谢


这是我的工作方式:

  1. 创建了另一个具有相同列的表,但是network_start_ip and network_last_ip are VARBINARY(16)
  2. 使用以下语句填充该表:INSERT INTO blocks SELECT INET6_ATON(b2.network_start_ip), INET6_ATON(b2.network_last_ip), b2.geoname_id FROM blocks_copy b2;
  3. 然后,要检查 IPv6 地址是否在范围内,我只需运行以下查询:SELECT geoname_id FROM blocks b WHERE INET6_ATON('2a01:4ff:ffff:ffff::ffff') BETWEEN b.network_start_ip AND b.network_last_ip
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查 ipv6 是否在范围内 的相关文章

随机推荐

  • 使用变量的 Pandas Sqlite 查询

    使用Python中的sqlite3 如果我想使用变量而不是固定命令进行数据库查询 我可以这样做 name MSFT c execute INSERT INTO Symbol VALUES name 当我尝试使用 pandas 数据框访问 S
  • Action Mailer 模板的优雅降级/渐进增强?

    是否有一些宝石或技术可以让我们只写 html erb我们的 Rails 3 邮件程序的模板 并通过剥离 HTML 标签来优雅地降级它们text plain版本 而不是必须创建每个部分两次 谷歌严重让我失望 所以我一定是搜索了错误的术语 看一
  • 使用ajax和nodejs服务器不会改变会话cookie

    我想在异步请求后更改会话 cookie 但无论我尝试什么 我总是失败 我的要求如下 ajax type POST url setStatus data userId userId token token tokenSecret tokenS
  • 使 sfinae 适用于具有推导返回类型的函数?

    考虑以下代码 Preprocessor include
  • Metro风格从网上加载Js

    我正在 Windows 8 上使用 Visual studio 2012 Ultimate 我正在开发一个 html5 js 地铁风格应用程序 我想从网上动态加载我的js文件 喜欢 但地铁应用程序说 APPHOST9601 无法加载http
  • 使用 Play 框架的 Scala 函数定义中的“Action”一词有何作用?

    我正在开发 Play 应用程序 并且刚刚开始使用 Scala 我看到有这个词Action下面函数中的等号之后和大括号之前 def index Action Ok views html index Hi there 这段代码有什么作用 我见过
  • 默认 XML 命名空间、JDOM 和 XPath

    我想使用 JDOM 读取 XML 文件 然后使用 XPath 从 JDOM 文档中提取数据 它很好地创建了 Document 对象 但是当我使用 XPath 查询 Document 中的元素列表时 我什么也没得到 我的 XML 文档在根元素
  • Java 8 流 API - 是否有标准方法将 Map 中的每个值处理为不同类型?

    I learn Java 8 Lambda 表达式 http docs oracle com javase tutorial java javaOO lambdaexpressions html and 流API http docs ora
  • 更新 Spring 版本后上下文初始化失败

    我最近将 Spring 版本从 3 2 4 RELEASE 更新到 4 0 7 RELEASE 从那时起我在加载上下文时收到此错误 请告诉我在更新 spring 版本后是否需要对 context xml 进行任何更改 这里是复仇者流上下文
  • asm.js 如何处理被零除?

    在 javascript 中 使用 整数 参数除以零的行为就像浮点应该 1 0 Infinity 1 0 Infinity 0 0 NaN asm js 规范规定 带有整数参数的除法返回intish 必须立即强制签名或未签名 如果我们在 j
  • 如何使
    水平布局?

    我正在尝试为我的网站开发一个布局 其中定义列表的元素将水平布局 有点像这样 term 1 term 2 term 3 definition 1 definition 2 definition 3 有人知道如何使用有效的 CSS 使定义列表看
  • 将在 MinGW 7 中使用的 VC Runtime 2017 中 scanf 函数系列的位置

    我在用 VS 2017 MinGW 与 GCC G 7 4 0 基本上发生的事情如下 使用 VS 2017 构建可执行文件 so 是用 GCC 构建的 so 由步骤 1 中创建的可执行文件加载 问题源于MSVCRT MinGW默认情况下链接
  • 本地工作中的 nuget 包

    在我们的产品中 我们有一些项目 几乎每一个都依赖于一个称为 核心 的核心 我们将每个项目作为单独的 nuget 包进行分发 对于部署 我们为其他团队 产品所做的工作 nuget 效果很好 但在我们的本地工作中这确实是一个很大的痛苦 每次 核
  • 使用 WebDriver 和 Ruby 与 JavaScript 下拉菜单交互?

    我正在使用 Ruby 和 Selenium WebDriver 为网页编写自动化 但遇到了网站上某些使用 JavaScript 而不是标准 HTML 制作的下拉菜单的阻塞问题 在这些下拉菜单中 用户可以从下拉菜单中选择一个选项 或者单击它并
  • 在 html5 画布上旋转单个图像(而不是其他图像)?

    我有一个精灵 我正在使用普通精灵表位块传输在 html 画布上制作动画 在某些关键事件上 我想更改精灵的方向 即翻转它或旋转 180 度 而不更改画布上的任何内容 其他精灵 有谁知道如何做到这一点 所以我的游戏遇到了这个问题 我有用于向上
  • 为 MSVC 预构建的 Boost 1.37

    我找不到 Boost 1 37 0 的一组预构建的 MSVC 库 只有源代码 我不明白他们奇怪的构建系统是如何工作的 有什么地方可以找到视觉工作室项目或其他东西的下载吗 The BoostPro 计算 http www boostpro c
  • Django objects.create 产生的输出比应有的要多

    有两个列表 主值
  • Angular 2 中的bundle.js.gz 文件是什么?

    我正在为我的应用程序使用 ng cli 当我运行 ng build prod 时 我得到两个文件 main budle js 和 main bundle js gz 第二个是什么 它有什么好处 服务器和客户端之间的 HTTP 传输几乎总是使
  • 将类型数组转换为通用数组?

    问题的简短版本 为什么我不能这样做 我仅限于 NET 3 5 T genericArray Obviously T should be float genericArray new T 3 1 0f 2 0f 0 0f Can t do t
  • 检查 ipv6 是否在范围内

    我有maxmind的ipv6数据 这是我当前的表 带有示例数据 network geoname id 2001 208 32 123 2001 218 32 4312 Using 他们的转换器 https github com maxmin