【发布时间】:2018-10-07 23:10:02
【问题描述】:
我想从给定的子网中获取下一个 IP。我知道如何从符号192.168.0.1/24 中获取 IP 范围,但我不知道如何获取范围内的下一个 IP。我写了这段代码:
def get_next_ip(ip):
tmp = ip.split('.')
val = int(tmp[0]) << 24 + int(tmp[1]) << 16 + int(tmp[2]) << 8 + int(tmp[3])
val = val + 1
octet3 = val & 0xFF
octet2 = (val >> 8) & 0xFF
octet1 = (val >> 16) & 0xFF
octet0 = (val >> 24) & 0xFF
next_ip = str(octet0) + "." + str(octet1) + "." + str(octet2) + "." + str(octet3)
return next_ip
当我运行print get_next_ip("192.168.0.1") 时,它会打印0.0.0.1 而不是192.168.0.2。为什么?
【问题讨论】: