需要:#pragma comment(lib, "IPHLPAPI.lib")
GetAdaptersAddresses函数参数说明
ULONG bufferSize = 0;
ULONG result = ::GetAdaptersAddresses(AF_UNSPEC, GAA_FLAG_INCLUDE_PREFIX, nullptr, nullptr, &bufferSize);
/*
参数1:ULONG Family 网络协议族,此参数须为下列值之一
AF_UNSPEC=0 返回与启用了 IPv4 或 IPv6 的适配器关联的 IPv4 和 IPv6 地址
AF_INET=2 仅返回与启用了 IPv4 的适配器关联的 IPv4 地址
AF_INET6=23 仅返回与启用了 IPv6 的适配器关联的 IPv6 地址
参数2:ULONG Flags 要检索的地址类型
概念解释:
单播(Unicast):单播地址是一对一的通信方式,它用于将数据包从源地址发送到目标地址。
源地址指定发送者的唯一标识符,而目标地址指定接收者的唯一标识符。
只有目标地址与接收者匹配时,数据包才会传送给接收者。
广播(Broadcast):广播地址是一对多的通信方式,它用于将数据包发送给同一个网络中的所有设备。
广播地址是一个特殊的地址,用于指示所有设备都应该接收该数据包。
广播可以是有限的(局域网内)或无限的(所有网络都接收)。
多播(Multicast):多播地址是一对多的通信方式,它用于将数据包发送给一组特定的设备,这组设备被称为多播组。
多播地址也是一种特殊的地址,它表明数据包是按照多播方式进行传输的。只有加入该多播组的设备才会接收到数据包
此参数是以下值的组合。 如果此参数为零,则将返回单播、任意广播和多播 IP 地址
GAA_FLAG_SKIP_UNICAST=0x0001 不要返回单播地址
GAA_FLAG_SKIP_ANYCAST=0x0002 不要返回 IPv6 任何广播地址
GAA_FLAG_SKIP_MULTICAST&#