use of com.xebia.vulnmanager.models.nmap.objects.Host in project vulnmanager by xebia-research.
the class HostsParserHelper method getHostsFromDocument.
/**
* All the hosts are extracted from the NMap report and saved in a list of hosts
*
* @param nMapDoc Document of NMap report
*/
List<Host> getHostsFromDocument(Document nMapDoc) {
NodeList hostList = nMapDoc.getElementsByTagName(NMapConstants.PARSER_LITERAL_HOST);
List<Host> listConnectedHosts = new ArrayList<>();
// Todo: Change the for loops to streams
for (int i = 0; i < hostList.getLength(); i++) {
Node hostNode = hostList.item(i);
if (hostNode.getAttributes().getNamedItem(NMapConstants.PARSER_LITERAL_START_TIME) != null) {
NodeList hostDataList = hostNode.getChildNodes();
listConnectedHosts.add(parseHostDataFromNodeList(hostDataList));
}
}
return listConnectedHosts;
}
use of com.xebia.vulnmanager.models.nmap.objects.Host in project vulnmanager by xebia-research.
the class HostsParserHelper method parseHostDataFromNodeList.
private Host parseHostDataFromNodeList(NodeList hostDataList) {
StateDetails stateDetails = null;
AddressDetails addressDetails = null;
HostNamesDetails hostNamesDetails = null;
HostPorts hostPorts = null;
TimingData timingData = null;
for (int x = 0; x < hostDataList.getLength(); x++) {
Node currentHostDetail = hostDataList.item(x);
NamedNodeMap currentChildAttributes = currentHostDetail.getAttributes();
String currentNodeName = currentHostDetail.getNodeName();
switch(currentNodeName) {
case NMapConstants.PARSER_LITERAL_STATUS:
stateDetails = getStatusDetails(currentChildAttributes);
break;
case NMapConstants.PARSER_LITERAL_ADDRESS:
addressDetails = getAddressDetails(currentChildAttributes);
break;
case NMapConstants.PARSER_LITERAL_HOST_NAMES:
hostNamesDetails = getHostNamesDetails(currentHostDetail.getChildNodes());
break;
case NMapConstants.PARSER_LITERAL_PORTS:
hostPorts = getPortDetails(currentHostDetail.getChildNodes());
break;
case NMapConstants.PARSER_LITERAL_TIMES:
timingData = getTimingData(currentChildAttributes);
break;
default:
break;
}
}
return new Host(stateDetails, addressDetails, hostNamesDetails, hostPorts, timingData);
}
use of com.xebia.vulnmanager.models.nmap.objects.Host in project vulnmanager by xebia-research.
the class NMapParser method getNMapReport.
public NMapReport getNMapReport(Document nMapDoc) {
ScanDataParserHelper scanDataParserHelper = new ScanDataParserHelper();
HostsParserHelper hostsParserHelper = new HostsParserHelper();
NMapGeneralInformation nMapScanData = scanDataParserHelper.getReportData(nMapDoc);
List<Host> hosts = hostsParserHelper.getHostsFromDocument(nMapDoc);
return new NMapReport(nMapScanData, hosts);
}
Aggregations