如何判断QHostAddress在Qt5中是IPv4还是IPv6



我可以像这样创建一个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::p rotocol() 将返回一个 QAbstractSocket::NetworkLayerProtocol 枚举,该枚举指定地址是 IPv4、IPv6、两者还是其他。

最新更新