【问题标题】:How to tell if QHostAddress is IPv4 or IPv6 in Qt5?Qt5中如何判断QHostAddress是IPv4还是IPv6?
【发布时间】:2017-10-20 16:28:38
【问题描述】:

我可以像这样创建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

【问题讨论】:

    标签: c++ qt qt5 ipv6 ipv4


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2014-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      • 2016-09-16
      • 2011-09-12
      相关资源
      最近更新 更多