-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdnsnetworkinfo.h
More file actions
49 lines (41 loc) · 1.33 KB
/
dnsnetworkinfo.h
File metadata and controls
49 lines (41 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#pragma once
#include <QObject>
#include <QString>
#include <QStringList>
#include <QtConcurrent/QtConcurrent>
#include <QFutureWatcher>
class DNSNetworkInfo : public QObject
{
Q_OBJECT
Q_PROPERTY(QString ipAddress READ ipAddress NOTIFY infoChanged)
Q_PROPERTY(QString netmask READ netmask NOTIFY infoChanged)
Q_PROPERTY(QString gateway READ gateway NOTIFY infoChanged)
Q_PROPERTY(QString broadcast READ broadcast NOTIFY infoChanged)
Q_PROPERTY(QStringList dnsServers READ dnsServers NOTIFY infoChanged)
public:
explicit DNSNetworkInfo(QObject *parent = nullptr, const QString &iface = "eth0");
QString ipAddress() const { return m_ipAddress; }
QString netmask() const { return m_netmask; }
QString gateway() const { return m_gateway; }
QString broadcast() const { return m_broadcast; }
QStringList dnsServers() const { return m_dnsServers; }
public slots:
void updateInfo(); // trigger refresh (non-blocking)
signals:
void infoChanged();
private:
QString m_iface;
QString m_ipAddress;
QString m_netmask;
QString m_gateway;
QString m_broadcast;
QStringList m_dnsServers;
struct NetData {
QString ip;
QString mask;
QString gateway;
QString broadcast;
QStringList dns;
};
NetData collectInfo(); // runs in background
};