【问题标题】:IPv4-mapped IPv6 address parsingIPv4 映射的 IPv6 地址解析
【发布时间】:2021-07-23 13:57:00
【问题描述】:

ch 是否有一些方法可以将 IPv4 映射的 IPv6 地址转换为 IPv4? 我找到了将 IPv4 转换为 IPv4 映射的 IPv6 的唯一方法。 如果不是我应该用什么来解析它? 谢谢!

【问题讨论】:

    标签: clickhouse


    【解决方案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:', ''));
      

      )

      【讨论】:

        猜你喜欢
        • 2012-12-25
        • 2013-09-18
        • 1970-01-01
        • 2015-01-17
        • 2015-04-01
        • 2012-04-11
        • 2013-07-02
        • 2012-06-29
        • 2014-11-01
        相关资源
        最近更新 更多