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));
方式二
网友评论