From 1d3b735036600aee9b4426142c8e63c8f1f8a948 Mon Sep 17 00:00:00 2001 From: LightBase Consultoria em Software Publico Date: Mon, 11 Aug 2014 12:53:25 -0300 Subject: [PATCH] Metodo de getOS --- cacic-teste/testcacic.cpp | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------- src/cacic_computer.cpp | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------- src/cacic_computer.h | 6 +++--- 3 files changed, 122 insertions(+), 126 deletions(-) diff --git a/cacic-teste/testcacic.cpp b/cacic-teste/testcacic.cpp index 84dbef1..95146f8 100644 --- a/cacic-teste/testcacic.cpp +++ b/cacic-teste/testcacic.cpp @@ -3,114 +3,114 @@ QTEST_MAIN(CTestCacic) CTestCacic::CTestCacic(QObject *parent) : - QObject(parent) + QObject(parent) { } void CTestCacic::initTestCase() { - this->OCacicComm = CacicComm("http://teste.cacic.cc", - "rG/HcIDVTZ3pPKCf[[MAIS]]I6aigUb7OMeij3FfC7qNaznk0rBRYb6q6kSK3eNfjgptS8BfwW5yJqCvD2ai7xlw9I6P21j6cvQUqlHmAJpCbfwR13urdRE9AhjfokMcPrH6R1/zXPGMHveLRRgKLcqWu2X96rmoQQdRq9EW1SXmYUAx1dCV[[MAIS]]3Ha61XBw5pq58q35zH8Gjt998rTi3ecV8ShXXevqyK[[MAIS]]W07xpgTjbbd6Fbs/35gPfdRRgMNFjq7Gq[[MAIS]]llFgYMJ6UcEhw8f0ZLQo2oL/eRW/CNyeBW6wG0hIo6EIdpi/Ht0/95Uwn2Og[[MAIS]]2UPXsmKKuTMeGwUvPdbEfexlinUO0[[MAIS]]j9qIa2dpjtl0Y5Fyk1Bvw2ZYRTXwgJpUHsBboWmtTFpgX3wSGOWMipE80K8ktRTVYOp[[MAIS]]4qS/SzKWXpfCuZoCncfwE0lCEoreTH[[MAIS]]MLrTkHJP2oqYMAyFyQcjC0UGr3BQGa2edSNXjG7jrTdddga/SODUiF94jgh/QBwhiZby34b__CRYPTED__", - "P198PVwtz5F5CfZPSUrzuaQA/QG1sTnwzl/rBnj8M7y5MglANGodG5LLD4q7oY809HuDR4g5tL64lZRBKvKPmEgWd9iAZKvT4UAm9XWN3nKKLGaznCaJohmntNGqrJP1Zd9riTHGu10mPbg/Uh3TCbBHVOICvu5sDlINlCR6A3[[MAIS]]a55RhfKNidvr5uX0kozCxr5t2DyOb5oPocEGyJKyHLQ==__CRYPTED__", - "1", - "0", - "0", - "YwpgjzZ86/eCsjvOki1KkQ==__CRYPTED__", - "8PT6U445MPNr3S7WHFa20ge/8NJSspSYE/UL3zf[[MAIS]]wkEfNZ7p1B/2o6i89gTZ44Ok__CRYPTED__", - "wshPlZWvLPhbUEQFQ1aQmA==__CRYPTED__", - "E9aKtVz/OSmGv7v1xW4FwaFukOob3qQ/HFDIz916K3ys82qfX9vBDz[[MAIS]]M2cdoYedhNkXt[[MAIS]]UVb10nD[[MAIS]]tOfbn7mlOlTDoGzUl9CgdPCsb[[MAIS]]Qa4wzuCrMw0BcCuaKfr62E3b8vh6Ug4JJbOgBo3ohG3x5O7Ap0D94GKtAWjMuTXRBbhGxPrRS4M6AhzvaN5P8pWd9FikrCLWuMs4ebnRlftef3RmVKScBDQ5zmK6sKxYNmX[[MAIS]]kKn/Gi2[[MAIS]]HftZ7HD9JLvZBpYhp4yjqShblQ67d6PlWgrRWXxwDseIiJe3NlF70zrCPBBelkeAhVDXMXnsYtLms3ElsLzxa3c5vpWzTfgyE[[MAIS]]hvALy4ivew7zaxEwrg2KY1T7GOSWZ7vljIvbhVZJgtzbnYiulFjJTtm5W4uJMKLuUJNzB0rxMkzToIE9/kDmeO2OKiwFbIfbe2Wdq0VpllOkjKtj9WM676iBSpYAXG0MsmLMj9CZ/sNi06hGF[[MAIS]]rXxiOSk66M0Hq[[MAIS]]OeUBh4z3Ra6f9yPJn0K9hIQyT[[MAIS]]Dr/QW/QdJIOkLTW8ZyyAF4DW9ojiTlUdySvB5EB1jyZ5nNTpzyE38qIdg7uM1tdWdm9FZGYxMdHwi1tS2dBeIWkDfWEjih01xiVt2dmdRgo0zIZvmmYDJ9LhCU3XPDlwdeQ8[[MAIS]]F7fnxDfxGqZQjZJ[[MAIS]]Y/Q8bdLpgbhcd3gt3SzjMLE0M[[MAIS]]hTmHG1KP2CzCibZ7grFAN3Y3jSPjmEj5Fzs26tdhdjNzSIt1FCueea8P2c4NmxPYkJCg0D1mgNrkH3L5svsO[[MAIS]]6YYrl3df4s[[MAIS]]fcK/to9s/pnkKfBKrAPF6Z4s2WPsALUPBDS5ty7RC2vqXRvH6hPR4o7xhXzQOQ/1xytr/RoEWEVeZ2wgHVVbbtFsALul/IDc7B45wmwxBx9iZHVwpQJVlNZZUBtwKqKhnXz5pM[[MAIS]]7yUAkfhMcO09pPd5kB2MBdRJs[[MAIS]]2FIk0GRUw05IHkc1rZEX5Ow==__CRYPTED__", - "Yot8BeM9lOh431SB7dYQXw==__CRYPTED__", - "Dcr8b5IfZOJjt6qyH5dGyw==__CRYPTED__", - "2.5.1.1.256.32", - "2.8.1.7", - "2.8.1.6"); - this->testPath = QDir::currentPath() + "/teste"; - this->testIniPath = testPath + "/teste.ini"; - QVariantMap json; - json["session"] = "lakdhfalkfhsaklfhasfhsl"; - this->session = QJsonObject::fromVariantMap(json); + this->OCacicComm = CacicComm("http://teste.cacic.cc", + "rG/HcIDVTZ3pPKCf[[MAIS]]I6aigUb7OMeij3FfC7qNaznk0rBRYb6q6kSK3eNfjgptS8BfwW5yJqCvD2ai7xlw9I6P21j6cvQUqlHmAJpCbfwR13urdRE9AhjfokMcPrH6R1/zXPGMHveLRRgKLcqWu2X96rmoQQdRq9EW1SXmYUAx1dCV[[MAIS]]3Ha61XBw5pq58q35zH8Gjt998rTi3ecV8ShXXevqyK[[MAIS]]W07xpgTjbbd6Fbs/35gPfdRRgMNFjq7Gq[[MAIS]]llFgYMJ6UcEhw8f0ZLQo2oL/eRW/CNyeBW6wG0hIo6EIdpi/Ht0/95Uwn2Og[[MAIS]]2UPXsmKKuTMeGwUvPdbEfexlinUO0[[MAIS]]j9qIa2dpjtl0Y5Fyk1Bvw2ZYRTXwgJpUHsBboWmtTFpgX3wSGOWMipE80K8ktRTVYOp[[MAIS]]4qS/SzKWXpfCuZoCncfwE0lCEoreTH[[MAIS]]MLrTkHJP2oqYMAyFyQcjC0UGr3BQGa2edSNXjG7jrTdddga/SODUiF94jgh/QBwhiZby34b__CRYPTED__", + "P198PVwtz5F5CfZPSUrzuaQA/QG1sTnwzl/rBnj8M7y5MglANGodG5LLD4q7oY809HuDR4g5tL64lZRBKvKPmEgWd9iAZKvT4UAm9XWN3nKKLGaznCaJohmntNGqrJP1Zd9riTHGu10mPbg/Uh3TCbBHVOICvu5sDlINlCR6A3[[MAIS]]a55RhfKNidvr5uX0kozCxr5t2DyOb5oPocEGyJKyHLQ==__CRYPTED__", + "1", + "0", + "0", + "YwpgjzZ86/eCsjvOki1KkQ==__CRYPTED__", + "8PT6U445MPNr3S7WHFa20ge/8NJSspSYE/UL3zf[[MAIS]]wkEfNZ7p1B/2o6i89gTZ44Ok__CRYPTED__", + "wshPlZWvLPhbUEQFQ1aQmA==__CRYPTED__", + "E9aKtVz/OSmGv7v1xW4FwaFukOob3qQ/HFDIz916K3ys82qfX9vBDz[[MAIS]]M2cdoYedhNkXt[[MAIS]]UVb10nD[[MAIS]]tOfbn7mlOlTDoGzUl9CgdPCsb[[MAIS]]Qa4wzuCrMw0BcCuaKfr62E3b8vh6Ug4JJbOgBo3ohG3x5O7Ap0D94GKtAWjMuTXRBbhGxPrRS4M6AhzvaN5P8pWd9FikrCLWuMs4ebnRlftef3RmVKScBDQ5zmK6sKxYNmX[[MAIS]]kKn/Gi2[[MAIS]]HftZ7HD9JLvZBpYhp4yjqShblQ67d6PlWgrRWXxwDseIiJe3NlF70zrCPBBelkeAhVDXMXnsYtLms3ElsLzxa3c5vpWzTfgyE[[MAIS]]hvALy4ivew7zaxEwrg2KY1T7GOSWZ7vljIvbhVZJgtzbnYiulFjJTtm5W4uJMKLuUJNzB0rxMkzToIE9/kDmeO2OKiwFbIfbe2Wdq0VpllOkjKtj9WM676iBSpYAXG0MsmLMj9CZ/sNi06hGF[[MAIS]]rXxiOSk66M0Hq[[MAIS]]OeUBh4z3Ra6f9yPJn0K9hIQyT[[MAIS]]Dr/QW/QdJIOkLTW8ZyyAF4DW9ojiTlUdySvB5EB1jyZ5nNTpzyE38qIdg7uM1tdWdm9FZGYxMdHwi1tS2dBeIWkDfWEjih01xiVt2dmdRgo0zIZvmmYDJ9LhCU3XPDlwdeQ8[[MAIS]]F7fnxDfxGqZQjZJ[[MAIS]]Y/Q8bdLpgbhcd3gt3SzjMLE0M[[MAIS]]hTmHG1KP2CzCibZ7grFAN3Y3jSPjmEj5Fzs26tdhdjNzSIt1FCueea8P2c4NmxPYkJCg0D1mgNrkH3L5svsO[[MAIS]]6YYrl3df4s[[MAIS]]fcK/to9s/pnkKfBKrAPF6Z4s2WPsALUPBDS5ty7RC2vqXRvH6hPR4o7xhXzQOQ/1xytr/RoEWEVeZ2wgHVVbbtFsALul/IDc7B45wmwxBx9iZHVwpQJVlNZZUBtwKqKhnXz5pM[[MAIS]]7yUAkfhMcO09pPd5kB2MBdRJs[[MAIS]]2FIk0GRUw05IHkc1rZEX5Ow==__CRYPTED__", + "Yot8BeM9lOh431SB7dYQXw==__CRYPTED__", + "Dcr8b5IfZOJjt6qyH5dGyw==__CRYPTED__", + "2.5.1.1.256.32", + "2.8.1.7", + "2.8.1.6"); + this->testPath = QDir::currentPath() + "/teste"; + this->testIniPath = testPath + "/teste.ini"; + QVariantMap json; + json["session"] = "lakdhfalkfhsaklfhasfhsl"; + this->session = QJsonObject::fromVariantMap(json); } void CTestCacic::testCreateFolder() { - QVERIFY(OCacic.createFolder(testPath)); + QVERIFY(OCacic.createFolder(testPath)); } void CTestCacic::testGetAndSetValueFromFile() { - OCacic.setValueToFile("Teste", "teste", "Valor de teste", testIniPath); - QVERIFY( OCacic.getValueFromFile("Teste", "teste", testIniPath) == "Valor de teste"); + OCacic.setValueToFile("Teste", "teste", "Valor de teste", testIniPath); + QVERIFY( OCacic.getValueFromFile("Teste", "teste", testIniPath) == "Valor de teste"); } void CTestCacic::testGetValueFromTags() { - QString value = "blablab[teste]Valor de teste[/teste]feihgj"; - QVERIFY(OCacic.getValueFromTags(value, "teste") == "Valor de teste"); + QString value = "blablab[teste]Valor de teste[/teste]feihgj"; + QVERIFY(OCacic.getValueFromTags(value, "teste") == "Valor de teste"); } void CTestCacic::testCommStatus() { - QVERIFY(OCacicComm.commStatus()); + QVERIFY(OCacicComm.commStatus()); } void CTestCacic::testComm() { - if (OCacicComm.commStatus()){ - QJsonObject jsonreply = OCacicComm.comm("/ws/get/test"); - QVERIFY(OCacic.getValueFromTags(jsonreply["reply"].toString(), "Comm_Status", "<>") == QString("OK")); + if (OCacicComm.commStatus()){ + QJsonObject jsonreply = OCacicComm.comm("/ws/get/test"); + QVERIFY(OCacic.getValueFromTags(jsonreply["reply"].toString(), "Comm_Status", "<>") == QString("OK")); } else - QSKIP("Teste de comunicação negativo!"); + QSKIP("Teste de comunicação negativo!"); } void CTestCacic::testDeleteFile() { - QDir file(testIniPath); - OCacic.deleteFile(testIniPath); - QVERIFY(!file.exists()); + QDir file(testIniPath); + OCacic.deleteFile(testIniPath); + QVERIFY(!file.exists()); } void CTestCacic::testDeleteFolder() { - QDir folder(testPath); - OCacic.deleteFolder(testPath); - QVERIFY(!folder.exists()); + QDir folder(testPath); + OCacic.deleteFolder(testPath); + QVERIFY(!folder.exists()); } void CTestCacic::testEnCrypt(){ - std::string key = "qwertyuiopasdfghjklzxcvbnmqwerty"; //chave de 256 bits (32 caracteres) - std::string IV = "0123456789123456"; //iv nunca se repete para a mesma senha. - std::string input = "aqui vai a url que sera encriptada"; - QVERIFY(OCacic.enCrypt(input, key, IV) == "Va2WiUrdTVrn93tCrtx0njjU4HDpn7VFCsCVr/+YgaBCVQ=="); + std::string key = "qwertyuiopasdfghjklzxcvbnmqwerty"; //chave de 256 bits (32 caracteres) + std::string IV = "0123456789123456"; //iv nunca se repete para a mesma senha. + std::string input = "aqui vai a url que sera encriptada"; + QVERIFY(OCacic.enCrypt(input, key, IV) == "Va2WiUrdTVrn93tCrtx0njjU4HDpn7VFCsCVr/+YgaBCVQ=="); } void CTestCacic::testDeCrypt(){ - std::string key = "qwertyuiopasdfghjklzxcvbnmqwerty"; //chave de 256 bits (32 caracteres) - std::string IV = "0123456789123456asas"; //iv nunca se repete para a mesma senha. - std::string input = "Va2WiUrdTVrn93tCrtx0njjU4HDpn7VFCsCVr/+YgaBCVQ=="; - QVERIFY(OCacic.deCrypt(input, key, IV) == "aqui vai a url que sera encriptada"); + std::string key = "qwertyuiopasdfghjklzxcvbnmqwerty"; //chave de 256 bits (32 caracteres) + std::string IV = "0123456789123456asas"; //iv nunca se repete para a mesma senha. + std::string input = "Va2WiUrdTVrn93tCrtx0njjU4HDpn7VFCsCVr/+YgaBCVQ=="; + QVERIFY(OCacic.deCrypt(input, key, IV) == "aqui vai a url que sera encriptada"); } void CTestCacic::testInterfaceDeRede(){ - // qDebug() << QString::fromStdString(OCacicComp.getNetworkInterface().at(0).at(0)); - QVERIFY2(!OCacicComp.getNetworkInterface().empty(), "Nenhuma interface de rede encontrada."); + // qDebug() << QString::fromStdString(OCacicComp.getNetworkInterface().at(0).at(0)); + QVERIFY2(!OCacicComp.getNetworkInterface().empty(), "Nenhuma interface de rede encontrada."); } void CTestCacic::testpegarOS(){ - QVERIFY((OCacicComp.getOs() == "Windows_NT") || (OCacicComp.getOs() == "linux")); + QVERIFY((OCacicComp.getOs() == 5) || (OCacicComp.getOs() == 0)); } void CTestCacic::testPegarUsu(){ - //lightbase = user do linux. - //Usuario = user da vm winxp. - QVERIFY(OCacicComp.getUser() == "lightbase" || OCacicComp.getUser() == "Usuario"); + //lightbase = user do linux. + //Usuario = user da vm winxp. + QVERIFY(OCacicComp.getUser() == "lightbase" || OCacicComp.getUser() == "Usuario"); } void CTestCacic::testLogin(){ - QJsonObject sessionjson = OCacicComm.login(); - QJsonValue session_str = sessionjson["codestatus"]; - // qDebug() << session_str.toVariant().toString(); - QVERIFY(!session_str.isNull()); + QJsonObject sessionjson = OCacicComm.login(); + QJsonValue session_str = sessionjson["codestatus"]; + // qDebug() << session_str.toVariant().toString(); + QVERIFY(!session_str.isNull()); } void CTestCacic::cleanupTestCase() diff --git a/src/cacic_computer.cpp b/src/cacic_computer.cpp index 0f73aa9..d018d16 100644 --- a/src/cacic_computer.cpp +++ b/src/cacic_computer.cpp @@ -2,9 +2,9 @@ CACIC_Computer::CACIC_Computer() { - os = pegarOS(); - networkInterface = networkInterfacesRunning(); - usu = pegarUsu(); + os = pegarOS(); + networkInterface = networkInterfacesRunning(); + usu = pegarUsu(); } /*NetworkInterfacesRunning @@ -15,52 +15,49 @@ CACIC_Computer::CACIC_Computer() * */ QList> CACIC_Computer::networkInterfacesRunning(){ - QNetworkInterface interface; - QList lista; - QList> todasInterfaces; + QNetworkInterface interface; + QList lista; + QList> 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()); + 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()); + lista.append(ae.ip().toString().toStdString()); } - // qDebug() << ae.ip().toString() << "\n"; + // qDebug() << ae.ip().toString() << "\n"; } - todasInterfaces.append(lista); - lista.clear(); + todasInterfaces.append(lista); + lista.clear(); } } - return todasInterfaces; + return todasInterfaces; } /*pegarOS - * @return: std::string; - * retorna uma string o qual dirá qual so é. - * + * @return: int; + * retorna um id referente a versão do SO. + * 48 = Windows XP + * 128 = Windows Vista + * 144 = Windows 7 + * 160 = Windows 8 + * 176 = Windows 8.1 + * 200 = Linux */ -std::string CACIC_Computer::pegarOS(){ - QString text; - QStringList environment = QProcessEnvironment::systemEnvironment().toStringList(); - foreach (text, environment) { - if (text.contains("OS=Win", Qt::CaseInsensitive)){ - //qDebug() << "Windows_NT"; - return "Windows_NT"; - }else{ - if (text.contains("SESSION=", Qt::CaseInsensitive)){ - //qDebug() << "linux"; - return "linux"; - } - } - } +int CACIC_Computer::pegarOS(){ +#if defined (Q_OS_WIN) + return QSysInfo::WindowsVersion; +#elif defined (Q_OS_LINUX) + return 200; +#endif } @@ -70,52 +67,51 @@ std::string CACIC_Computer::pegarOS(){ * retorna uma string o qual dirá qual é o usuario logado no sistema. */ std::string CACIC_Computer::pegarUsu(){ - QString text; - QStringList environment = QProcessEnvironment::systemEnvironment().toStringList(); - foreach (text, environment) { - if (text.contains("USER=", Qt::CaseInsensitive)){ - QString x = text; - QString s = "USER="; - QString e = "\""; - int start = x.indexOf(s, 0, Qt::CaseInsensitive); - int end = x.indexOf(e, Qt::CaseInsensitive); - if(start != -1){ - QString y = x.mid(start + s.length(), ((end - (start + s.length())) > -1 ? (end - (start + s.length())) : -1)); - //qDebug() << y; - return y.toStdString(); + QString text; + QStringList environment = QProcessEnvironment::systemEnvironment().toStringList(); + foreach (text, environment) { + if (text.contains("USER=", Qt::CaseInsensitive)){ + QString x = text; + QString s = "USER="; + QString e = "\""; + int start = x.indexOf(s, 0, Qt::CaseInsensitive); + int end = x.indexOf(e, Qt::CaseInsensitive); + if(start != -1){ + QString y = x.mid(start + s.length(), ((end - (start + s.length())) > -1 ? (end - (start + s.length())) : -1)); + //qDebug() << y; + return y.toStdString(); } }else{ - if (text.contains("USERNAME=", Qt::CaseInsensitive)){ - QString x = text; - QString s = "USERNAME="; - QString e = "\""; - int start = x.indexOf(s, 0, Qt::CaseInsensitive); - int end = x.indexOf(e, Qt::CaseInsensitive); - if(start != -1){ - QString y = x.mid(start + s.length(), ((end - (start + s.length())) > -1 ? (end - (start + s.length())) : -1)); - // qDebug() << y; - return y.toStdString(); + if (text.contains("USERNAME=", Qt::CaseInsensitive)){ + QString x = text; + QString s = "USERNAME="; + QString e = "\""; + int start = x.indexOf(s, 0, Qt::CaseInsensitive); + int end = x.indexOf(e, Qt::CaseInsensitive); + if(start != -1){ + QString y = x.mid(start + s.length(), ((end - (start + s.length())) > -1 ? (end - (start + s.length())) : -1)); + // qDebug() << y; + return y.toStdString(); } } } } - return false; + return false; } /* * getters/setters */ - -std::string CACIC_Computer::getOs() const +int CACIC_Computer::getOs() const { - return os; + return os; } std::string CACIC_Computer::getUser() const { - return usu; + return usu; } QList> CACIC_Computer::getNetworkInterface() const { - return networkInterface; + return networkInterface; } diff --git a/src/cacic_computer.h b/src/cacic_computer.h index 97b0221..49c85d6 100644 --- a/src/cacic_computer.h +++ b/src/cacic_computer.h @@ -13,16 +13,16 @@ class CACIC_Computer public: CACIC_Computer(); - std::string pegarOS(); + int pegarOS(); std::string pegarUsu(); - std::string getOs() const; + int getOs() const; std::string getUser() const; QList> getNetworkInterface() const; QList> networkInterfacesRunning(); private: QList> networkInterface; - std::string os; + int os; std::string usu; }; -- libgit2 0.21.2