dongfangho 发表于 2017-12-12 21:46:16

【mysql】IP地址整数int和varchar的转换

DELIMITER $$  CREATE FUNCTION natAndImDbTest11.ipBigIntToString (
  ip bigint
  )
  RETURNS CHAR(15)
  BEGIN
  DECLARE o1 INT;
  DECLARE o2 INT;
  DECLARE o3 INT;
  DECLARE o4 INT;
  DECLARE ip_new_varchar VARCHAR(15);
  IF (ip > 4294967295) then
  RETURN '255.255.255.255';
  END if;
  IF (ip <= 0) then
  RETURN '0.0.0.0' ;
  END if;
  SET o1 = ip / 16777216;
  SET ip = ip % 16777216 ;
  SET o2 = ip / 65536 ;
  SET ip = ip % 65536 ;
  SET o3 = ip / 256 ;
  SET ip = ip % 256 ;
  SET o4 = ip ;
  SET ip_new_varchar = concat( cast(o1 as char(3)),'.',cast(o2 as char(3)),'.',cast(o3 as char(3)),'.',cast(o4 as char(3)));
  RETURN(ip_new_varchar);
  END;
  $$
  DELIMITER ;
页: [1]
查看完整版本: 【mysql】IP地址整数int和varchar的转换