int32 to IPv4 ,python把十进制整数转化成ip字符串

时间:2023-01-07 10:22:04

给定一个ip地址,比如"128.32.10.1",将它转换成二进制为:

10000000 00100000 00001010 00000001

然后转换成十进制就是:

2149583361

它的要求是反过来,给一个十进制的数字,转换成ip字符串,也就是说,给定2149583361,结果就应该是"128.32.10.1"

代码:

def int32_to_ip(int32):

  //引用正则用来三等分字符串
  import re

  //转换成2进制数

  bi = "{0:b}".format(int32)

    //补齐32位

  bi = "0"*(32-len(bi))+bi

       //8个一组算出每8个数字的十进制,然后在加","分隔
  ret_ip_string = '.'.join(list(map(lambda x: str(int(x, 2)),re.findall(r'.{8}',bi))))

  //返回ip字符串
  return ret_ip_string