我有输入的ipv4和ipv6地址列表,这些地址已被子网划分。我想以s_addr
或uint_32_t
的形式找到它们的子网掩码,以便可以检查给定的IP地址是否属于IP地址的输入列表。那么当遇到IP地址(例如156.67.154.0/24)时,如何生成子网掩码(如255.255.255.0)?
我尝试过:
uint32_t subnet_mask=0xFFFFFFFFU & -(1U << (32 - prefix))
但是上述方法给出:0.255.255.255
尝试(1U << (32 - prefix)) - 1
。