获取本机所有 IP 地址,包括 IPV6的地址,需要引用 QNetworkInterface
#include <QNetworkInterface>
// 获取本机所有 IP 地址
void MainWindow::getLocalIPs() {
QList<QHostAddress> ipAddressesList;
QList<QNetworkInterface> interfaces = QNetworkInterface::allInterfaces();
foreach (QNetworkInterface interface, interfaces) {
if (interface.flags() & QNetworkInterface::IsUp && !(interface.flags() & QNetworkInterface::IsLoopBack)) {
QList<QNetworkAddressEntry> addressEntries = interface.addressEntries();
foreach (QNetworkAddressEntry entry, addressEntries) {
只获取IPV4地址
if (entry.ip().protocol() == QAbstractSocket::IPv4Protocol)
ipAddressesList.append(entry.ip());
}
}
}
// 输出所有 IP 地址
foreach (QHostAddress address, ipAddressesList) {
qDebug() << address.toString();
// ui->textEdit->append(