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

10000000 00100000 00001010 00000001

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

然后转换成十进制就是:

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

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄