美文网首页
Hive_Sting类型IP-转-Long类型IP

Hive_Sting类型IP-转-Long类型IP

作者: Eqo | 来源:发表于2022-08-22 00:52 被阅读0次

    IP地址和数字如何通过sql进行转换?

    • IP地址一般是一个32位的二进制数意思就是如果将IP地址转换成二进制表示应该有32为那么长,
    • 但是它通常被分割为4个“8位二进制数”(。例:点分十进IP地址(10.0.3.193),实际上是32位二进制数(00001010.00000000.00000011.11000001)
      -通俗讲 4个八位 转成 十进制
      (192.168.1.1)-> 十进制

    方式一

    • string ip 转 ip_long
                  cast(split("192.168.123.26","\\.")[0] as bigint)*256*256*256
                + cast(split("192.168.123.26","\\.")[1] as bigint)*256*256
                + cast(split("192.168.123.26","\\.")[2] as bigint)*256
                + cast(split("192.168.123.26","\\.")[3] as bigint)
    

    long_ip 转 String

    select concat_ws('\.',conv(substr(lpad(conv(ip,10,2),32,0),1,8),2,10),conv(substr(lpad(conv(ip,10,2),32,0),9,8),2,10),conv(substr(lpad(conv(ip,10,2),32,0),17,8),2,10),conv(substr(lpad(conv(ip,10,2),32,0),25,8),2,10));
    
    

    方式二

    相关文章

      网友评论

          本文标题:Hive_Sting类型IP-转-Long类型IP

          本文链接:https://www.haomeiwen.com/subject/ocgbgrtx.html