0
是否可以检索QAbstractSocket
上的IPv6地址?您可以使用QAbstractSocket::peerAddress()
检索IPv4版本,但我不确定IPv6版本。是否可以使用QAbstractSocket检索IPv6地址?
是否可以检索QAbstractSocket
上的IPv6地址?您可以使用QAbstractSocket::peerAddress()
检索IPv4版本,但我不确定IPv6版本。是否可以使用QAbstractSocket检索IPv6地址?
请看文档。 peerAddress()
返回一个通用的QHostAddress
- 它不限于IPv4!只要您连接到IPV6对等端,将使用QHostAddress::toIPv6Address
返回完整的IPV6地址。像这样:
QAbstractSocket socket;
socket.connectToHost(QHostAddress("2607:f8b0:4009:803::1005"), 80); // google.com
....
const QHostAddress & addr = socket.peerAddress();
if (addr.protocol() == QAbstractSocket::IPv6Protocol) {
Q_IPV6ADDR address6 = addr.toIPv6Address();
...
}
我明白了,谢谢。但是有一个问题,比方说,我使用IPv4连接到我的服务器,仍然有可能获得IPv6? (对不起,也许我误解了你的答案)。 – Blastcore
@Blastcore:它*可能*是可能的。如果您通过IPV4的DNS名称连接到主机,那么您可能只需在DNS记录中查找IPV6地址即可。如果您只知道IPV4地址,则可以通过反向DNS查找来了解DNS名称。 –