根据掩码长度(针对ipv4和ipv6地址)生成子网掩码(uint32_t或s_addr)

问题描述 投票:0回答:1

我有输入的ipv4和ipv6地址列表,这些地址已被子网划分。我想以s_addruint_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

c ip-address mask subnet
1个回答
0
投票

尝试(1U << (32 - prefix)) - 1

© www.soinside.com 2019 - 2024. All rights reserved.