获取以下 IPv4 地址:128.32.10.1
该地址有 4 个八位字节,其中每个八位字节是一个字节(或 8 位)。
- 第一个八位字节
128
具有二进制表示:10000000
- 第二个八位字节
32
具有二进制表示:00100000
- 第三个八位字节
10
具有二进制表示:00001010
- 第 4 个八位字节
1
具有二进制表示:00000001
所以128.32.10.1
==10000000.00100000.00001010.00000001
因为上面的 IP 地址有 32 位,我们可以将其表示为无符号的 32 位数字(即把上述的二进制中的.都去掉后整个二进制转换成整型):2149583361
完成接受无符号 32 位数字并返回其 IPv4 地址的字符串表示形式的函数。
例子
2149583361 ==> "128.32.10.1"
32 ==> "0.0.0.32"
0 ==> "0.0.0.0"
题目难度:简单
题目来源:https://www.codewars.com/kata/52e88b39ffb6ac53a400022e
注:
使用 ipaddress 库是作弊的行为
from typing import Union
def int32_to_ip(int32: int) -> Union[str, bool]:
# your code here
return
assert int32_to_ip(2154959208) == 128.114.17.104"
assert int32_to_ip(0) == "0.0.0.0"
assert int32_to_ip(2149583361) == "128.32.10.1"
assert int32_to_ip(4095833611) == "244.33.118.11"
assert int32_to_ip(4294967296) == False