我可以创建一个QHostAddress对象,如下所示:

QHostAddress addr_ip4("127.0.0.1");
QHostAddress addr_ip6("::1/128");

并像这样测试其属性:
qDebug() << "addr_ip4.isNull() =      " << addr_ip4.isNull();
qDebug() << "addr_ip4.isLoopback() =  " << addr_ip4.isLoopback();
qDebug() << "addr_ip4.isMulticast() = " << addr_ip4.isMulticast();

qDebug() << "addr_ip6.isNull() =      " << addr_ip6.isNull();
qDebug() << "addr_ip6.isLoopback() =  " << addr_ip6.isLoopback();
qDebug() << "addr_ip6.isMulticast() = " << addr_ip6.isMulticast();

但是...我如何分辨哪些地址实际上是 IPv4 ,哪些地址是 IPv6

最佳答案

调用QHostAddress::protocol()将返回一个QAbstractSocket::NetworkLayerProtocol enum,它指定地址是IPv4,IPv6还是两者。

关于c++ - 如何分辨Qt5中QHostAddress是IPv4还是IPv6?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46853422/

10-11 15:10