IPv4 映射的 IPv6 地址解析
Posted
技术标签:
【中文标题】IPv4 映射的 IPv6 地址解析【英文标题】:IPv4-mapped IPv6 address parsing 【发布时间】:2021-07-23 13:57:00 【问题描述】:ch 是否有一些方法可以将 IPv4 映射的 IPv6 地址转换为 IPv4? 我找到了将 IPv4 转换为 IPv4 映射的 IPv6 的唯一方法。 如果不是我应该用什么来解析它? 谢谢!
【问题讨论】:
【参考方案1】:SELECT reinterpret(
reverse(
substr( IPv6StringToNum('::ffff:46.56.82.33'), 13, 4)
),
'IPv4') AS r;
┌─r───────────┐
│ 46.56.82.33 │
└─────────────┘
SELECT extract('::ffff:46.56.82.33', '\\d+\\.\\d+\\.\\d+\\.\\d+$')
┌─extract('::ffff:46.56.82.33', '\\d+\\.\\d+\\.\\d+\\.\\d+$')─┐
│ 46.56.82.33 │
└─────────────────────────────────────────────────────────────┘
【讨论】:
【参考方案2】:不,它没有。我不确定您的用例是什么,但一种选择是剥离 ::ffff:
SELECT replaceOne('::ffff:46.56.82.33', '::ffff:', '');
(
SELECT toIPv4(replaceOne('::ffff:46.56.82.33', '::ffff:', ''));
)
【讨论】:
以上是关于IPv4 映射的 IPv6 地址解析的主要内容,如果未能解决你的问题,请参考以下文章