summaryrefslogtreecommitdiff
path: root/nmap2json/__main__.py
blob: 971ad879976631374b37bf4aa87024206be8393e (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/env python

import json
import subprocess
import sys
import xmltodict

lookup = lambda hosts, ports: subprocess.run(["nmap", "-oX", "-", "-Pn", "--open", "-n", "-p", ports, hosts]
                                        , stdout=subprocess.PIPE).stdout.decode("utf-8")

port_to_json = lambda port: {"{#PORT}": port["@portid"],
                        "{#NAME}": port["service"]["@name"]}

main = lambda: json.dumps({"data": list(map(port_to_json, xmltodict.parse(lookup(sys.argv[1], sys.argv[2]))["nmaprun"]["host"]["ports"]["port"]))})

if __name__ == '__main__':
    print(main())