Skip to content

Instantly share code, notes, and snippets.

@brizzbane
Created February 1, 2015 02:46
Show Gist options
  • Save brizzbane/637dfed0032d6f00e191 to your computer and use it in GitHub Desktop.
Save brizzbane/637dfed0032d6f00e191 to your computer and use it in GitHub Desktop.
libnmap parser help
nmap_report = NmapParser.parse(nmap_proc.stdout)
for nmap_host in nmap_report.hosts:
host_keys = ["starttime", "endtime", "address", "hostnames",
"ipv4", "ipv6", "mac", "status"]
jhost = {}
for hkey in host_keys:
if hkey == "starttime" or hkey == "endtime":
val = getattr(nmap_host, hkey)
jhost[hkey] = datetime.fromtimestamp(int(val) if len(val) else 0)
else:
jhost[hkey] = getattr(nmap_host, hkey)
for nmap_service in nmap_host.services:
service_keys = ["port", "protocol", "state"]
ritems = []
# create report item for basic port scan
jservice = {}
for skey in service_keys:
jservice[skey] = getattr(nmap_service, skey)
jservice['type'] = 'port-scan'
jservice['service'] = nmap_service.service
jservice['service-data'] = nmap_service.banner
ritems.append(jservice)
for nse_item in nmap_service.scripts_results:
print nse_item
jnse = {}
for skey in service_keys:
jnse[skey] = getattr(nmap_service, skey)
jnse['type'] = 'nse-script'
jnse['service'] = nse_item['id']
#jnse['service-data'] = nse_item['output']
ritems.append(jnse)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment