diff options
Diffstat (limited to 'startupscreen/settingsmanager.cpp')
-rw-r--r-- | startupscreen/settingsmanager.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/startupscreen/settingsmanager.cpp b/startupscreen/settingsmanager.cpp index 4f5f217..0608f86 100644 --- a/startupscreen/settingsmanager.cpp +++ b/startupscreen/settingsmanager.cpp @@ -54,6 +54,7 @@ #include <QDir> #include <QFile> #include <QTemporaryFile> +#include <QNetworkInterface> #include <sys/reboot.h> #include <unistd.h> @@ -124,3 +125,29 @@ void SettingsManager::reboot() ::reboot(RB_AUTOBOOT); qWarning("reboot failed"); } + +QString SettingsManager::networks() +{ + QString networks; + networks.reserve(100); + + const auto interfaceList = QNetworkInterface::allInterfaces(); + for (const auto &interface : interfaceList) { + if (interface.name() == QLatin1String("lo")) + continue; + + if (interface.flags().testFlag(QNetworkInterface::IsUp)) { + for (QNetworkAddressEntry &entry : interface.addressEntries()) { + if (entry.ip().protocol() == QAbstractSocket::IPv4Protocol) { + if (!networks.isEmpty()) + networks += QLatin1String("\n"); + + networks += interface.name(); + networks += QLatin1String(": "); + networks += entry.ip().toString(); + } + } + } + } + return networks; +} |