summaryrefslogtreecommitdiffstats
path: root/startupscreen/settingsmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'startupscreen/settingsmanager.cpp')
-rw-r--r--startupscreen/settingsmanager.cpp27
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;
+}