#include <arpa/inet.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <iostream>
bool is_multicast(const std::string& addr) {
uint32_t iaddr = inet_addr(addr.c_str());
uint32_t net_addr = htonl(iaddr);
// ["224.0.0.0", "239.255.255.255"]
return net_addr >= 0xE0000000 && net_addr <= 0xEFFFFFFF;
}
int main(int argc, char** argv) {
std::cout << is_multicast("239.0.0.1") << std::endl;
std::cout << is_multicast("224.0.0.0") << std::endl;
std::cout << is_multicast("224.0.0.1") << std::endl;
std::cout << is_multicast("239.255.255.255") << std::endl;
std::cout << is_multicast("192.168.1.1") << std::endl;
std::cout << is_multicast
判断ip是否为multicast
最新推荐文章于 2025-06-06 10:29:57 发布
本文介绍如何使用C++编程判断一个IPv4地址是否属于多播范围。通过理解多播地址的特性,结合IP地址的二进制表示,可以编写相应的代码进行检查。

订阅专栏 解锁全文
2217

被折叠的 条评论
为什么被折叠?



