对于以 struct sockaddr_in6
数据类型表示的给定 IPv6 地址,我想知道该地址是否在多播 address range 中或不。
例如,我想要一个函数is_ipv6_multicast()
,其工作方式如下
struct sockaddr_in6* sa6;
...
if (is_ipv6_multicast(sa6)) {
// do one thing
} else {
// do another
}
谁能帮我解决这个问题?
最佳答案
IPv6 multicast addresses第一个字节的值为 0xFF
。所以你可以这样测试它:
int is_ipv6_multicast(struct sockaddr_in6* sa6) {
return (sa6->sin6_addr.s6_addr[0] == 0xff);
}
关于c - 过滤掉 IPv6 多播地址范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35327834/