Nmap Output Parser

Turn nmap `-oX` XML or `-oG` greppable output into clean host/port tables. Runs in your browser.

Try:
Parsed table

About this tool

Nmap Output Parser converts raw nmap scan output into a table you can sort, copy, diff or feed into a report. It understands the two nmap formats most often saved from automated scans:

The parser extracts the host, hostname, port, protocol, state, service name and detected version string. By default it keeps only open ports so the result is report-ready, but you can turn Open ports only off to include closed and filtered rows too.

Worked example

Input:

<nmaprun>
  <host>
    <address addr="10.0.0.10" addrtype="ipv4"/>
    <hostnames><hostname name="web.local"/></hostnames>
    <ports>
      <port protocol="tcp" portid="80">
        <state state="open"/>
        <service name="http" product="nginx" version="1.18.0"/>
      </port>
    </ports>
  </host>
</nmaprun>

Output as Markdown:

| Host       | Hostname  | Port | Protocol | State | Service | Version      |
| ---------- | --------- | ---- | -------- | ----- | ------- | ------------ |
| 10.0.0.10 | web.local | 80   | tcp      | open  | http    | nginx 1.18.0 |

Options

FAQ

Does this run nmap for me?

No. It parses output you already have. Run nmap separately and paste XML from nmap -oX or greppable output from nmap -oG.

Which nmap output format should I use?

XML (-oX) is the most structured and preserves service/version details reliably. Greppable (-oG) is convenient for older scripts and quick scans, and this tool can parse its Host: / Ports: records too.

Why did closed ports disappear?

Open ports only is on by default because most reports focus on reachable services. Turn it off to include closed, filtered and other states found in the scan.

Does it parse UDP and IPv6 scans?

Yes. Protocols such as tcp and udp are preserved from the nmap output, and IPv6 host strings are kept. IPv4 hosts get numeric sorting; IPv6 and names sort as strings.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool nmap-output-parser '<?xml version="1.0"?>
<nmaprun>...'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/nmap-output-parser/?input=%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3Cnmaprun%3E...&format=auto&output=markdown&sort_by=host&open_only=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.