-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapplication.cc
More file actions
89 lines (72 loc) · 2.45 KB
/
application.cc
File metadata and controls
89 lines (72 loc) · 2.45 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
79
80
81
82
83
84
85
86
87
88
89
#include <QtGui>
#include <string>
#include <iostream>
#include <tinyxml2.h>
#include "application.h"
using namespace std;
using namespace tinyxml2;
Application::Application() {
setWindowTitle("Title");
resize(600, 400);
submitButton = new QPushButton("&Submit");
ipInputLabel = new QLabel();
ipInputLabel->setText("IP Range:");
ipInput = new QLineEdit();
output = new QTextEdit();
output->setReadOnly(true);
output->setAlignment(Qt::AlignBottom);
connect(ipInput, SIGNAL(returnPressed()), this, SLOT(nmap()));
connect(submitButton, SIGNAL(clicked()), this, SLOT(nmap()));
layout = new QHBoxLayout();
layout->addWidget(ipInputLabel);
layout->addWidget(ipInput);
layout->addWidget(submitButton);
layoutMaster = new QVBoxLayout();
layoutMaster->addLayout(layout);
layoutMaster->addWidget(output);
setLayout(layoutMaster);
}
void Application::nmap() {
output->setPlainText("Running scan...");
qApp->processEvents();
nmapProgram = new QProcess;
inputText = ipInput->text();
nmapProgram->start("exampleProgram", QStringList() << inputText << "example-arguments");
connect(nmapProgram, SIGNAL(finished(int)), this, SLOT(readXml()));
}
void Application::readXml() {
XMLDocument doc;
doc.LoadFile("nmap.xml");
XMLElement* root = doc.FirstChildElement("nmaprun");
if(root == nullptr) {
output->setPlainText("");
return;
}
XMLElement* host = root->FirstChildElement("host");
if(host == nullptr) {
output->setPlainText("Please enter a valid IP range");
return;
}
else
output->setPlainText("");
while(host != nullptr) {
outputString = "";
outputString += host->FirstChildElement("address")->Attribute("addr");
outputString += "";
output->append(outputString);
XMLElement* port = host->FirstChildElement("ports")->FirstChildElement("port");
while(port != nullptr) {
outputString = " ";
outputString += port->Attribute("portid");
outputString += " ";
outputString += port->FirstChildElement("service")->Attribute("name");
outputString += + "";
output->append(outputString);
port = port->NextSiblingElement("port");
}
outputString = "";
output->append(outputString);
host = host->NextSiblingElement("host");
}
qApp->processEvents();
}