# 引用正則來三等分字符串 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)