0

でIPv6アドレスを取得することは可能QAbstractSocketですか?を使用してIPv4を取得できますがQAbstractSocket::peerAddress()、IPv6についてはよくわかりません。

4

1 に答える 1

3

ドキュメントを見てください。はpeerAddress()ジェネリックを返しますQHostAddress-それはIPv4に限定されません!IPV6ピアに接続している限り、を使用して完全なIPV6アドレスが返されQHostAddress::toIPv6Addressます。このような:

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();
  ...
}
于 2012-06-08T20:01:34.260 に答える