需要把ip地址转换为10进制数,然后也可以把10进制数转化为ip地址,计算机ping这个十进制数可以ping通对应的ip地址,说明已经实现功能
代码如下
# 引用正则来三等分字符串
import re
# 转换成二进制数
bi = "{0:b}".format(18223104)
# 补齐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字符串
print(ret_ip_string)
也可以封装成函数,便于调用
def int32_to_ip(int32):
import re
bi = "{0:b}".format(int32)
bi = "0" * (32 - len(bi)) + bi
ret_ip_string = '.'.join(list(map(lambda x: str(int(x, 2)), re.findall(r'.{8}', bi))))
return ret_ip_string
if __name__ == '__main__':
ip = int32_to_ip(18223104)
print(ip)
您可能感兴趣的文章:python十进制转二进制的详解python十进制和二进制的转换方法(含浮点数)Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)Python实现的十进制小数与二进制小数相互转换功能基础的十进制按位运算总结与在Python中的计算示例Python中不同进制互相转换(二进制、八进制、十进制和十六进制)python如何判断IP地址合法性