cacic_computer.cpp
2.44 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include "cacic_computer.h"
CACIC_Computer::CACIC_Computer()
{
os = pegarOS();
networkInterface = networkInterfacesRunning();
}
/*NetworkInterfacesRunning
* @return: QList<QList<std::string>>.
* Retorna todas as interfaces com seus IP's, nome e MAC.
* Cada uma é salva em uma lista que também será salva em
* outra lista que conterá todas as interfaces.
*
*/
QList<QList<std::string>> CACIC_Computer::networkInterfacesRunning(){
QNetworkInterface interface;
QList<std::string> lista;
QList<QList<std::string>> todasInterfaces;
foreach (QNetworkInterface in, interface.allInterfaces()) {
if (!(bool)(in.flags() & QNetworkInterface::IsLoopBack) &&
!(bool)(in.flags() & QNetworkInterface::IsPointToPoint) &&
(bool)(in.flags() & QNetworkInterface::IsRunning)){
// qDebug() << in.humanReadableName() << "\n";
lista.append(in.humanReadableName().toStdString());
// qDebug() << in.hardwareAddress() << "\n";
lista.append(in.hardwareAddress().toStdString());
foreach (QNetworkAddressEntry ae, in.addressEntries()){
if (ae.ip().scopeId() == ""){
lista.append(ae.ip().toString().toStdString());
} else {
lista.append(ae.ip().toString().toStdString());
}
// qDebug() << ae.ip().toString() << "\n";
}
todasInterfaces.append(lista);
lista.clear();
}
}
return todasInterfaces;
}
/*pegarOS
* @return: std::string;
* retorna uma string o qual dirá qual so é.
*
*/
std::string CACIC_Computer::pegarOS(){
QString text;
QStringList environment = QProcess::systemEnvironment();
foreach (text, environment) {
if (text.contains("OS=", Qt::CaseInsensitive)){
if ((QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS8) &&
(QSysInfo::windowsVersion() < QSysInfo::WV_WINDOWS8_1));
// qDebug () << "win 8";
else if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS8_1)
// qDebug() << "win 8.1";
return text.mid(text.indexOf("=")+1).toStdString();
}
//implementar o if pra quando for linux.
}
return "";
}
/*
* getters/setters
*/
std::string CACIC_Computer::getOs() const
{
return os;
}
QList<QList<std::string>> CACIC_Computer::getNetworkInterface() const
{
return networkInterface;
}