{
  "title": "Port mapping validator",
  "human_url": "https://happytails.ai/en/developer-tools/port-mapping-validator/",
  "agent_url": "https://happytails.ai/agents/en/developer-tools/port-mapping-validator/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/developer-tools/port-mapping-validator.md",
  "content": "Port mapping validator\nFind overlapping listener addresses and port ranges in a supplied service inventory, including dual-stack assumptions.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Port mapping validator\nEnter one service binding per CSV row with a name, host or network namespace, protocol, numeric address and inclusive port range.\nFor IPv6, set ipv6Only to true or false; leave that field empty for IPv4 and IPv4-mapped addresses.\nReview every conflicting pair and download the complete inventory and results.\nUseful next steps\nIP allowlist overlap checker\nIPv6 address scope inspector\nMTU overhead calculator\nCompare bindings within the same namespace\nTwo services are compared only when their supplied namespace and transport protocol match. Port ranges include both endpoints. A wildcard IPv4 address overlaps specific IPv4 addresses; an IPv6 wildcard also overlaps IPv4 when ipv6Only is false. Scoped link-local addresses retain their interface identity.\nInventory analysis does not probe a running host\nThe checker does not resolve hostnames, open sockets or inspect a firewall. It models exclusive listeners, without inferring socket reuse, multicast or NAT translation rules. Different namespaces are treated as separate hosts or network namespaces. More than 5000 conflicts rejects the complete report instead of hiding later pairs.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "IP allowlist overlap checker",
      "url": "https://happytails.ai/en/developer-tools/ip-allowlist-overlap-checker/"
    },
    {
      "name": "IPv6 address scope inspector",
      "url": "https://happytails.ai/en/developer-tools/ipv6-address-scope-inspector/"
    },
    {
      "name": "MTU overhead calculator",
      "url": "https://happytails.ai/en/developer-tools/mtu-overhead-calculator/"
    }
  ],
  "tool": {
    "id": "port-mapping-validator",
    "category": "developer-tools",
    "built": true,
    "requirements": "Compare exclusive listener assignments within the same supplied host or network namespace and transport. Port ranges include both endpoints. A wildcard overlaps all addresses in its family. An IPv6 wildcard also overlaps IPv4 when ipv6Only is false. IPv4-mapped IPv6 addresses use IPv4 identity and require an empty ipv6Only field. Scoped link-local addresses retain their interface identity. Service names remain unchanged. No DNS lookup, real socket probe, NAT translation, socket reuse, multicast or firewall reachability is inferred. More than 5000 conflicting pairs rejects the full report rather than truncating it. Runs locally without uploads. Limit: 500000 combined input characters, 1000 services and 5000 conflicting pairs. Complete JSON and JSON Pointer CSV exports are each capped at 2000000 characters; CSV contains at most 200000 typed values. Preview shows at most 200 rows. Calculations stop after 10 seconds. Downloads retain your source inputs, units, assumptions and complete results.",
    "implementation": {
      "fields": [
        {
          "key": "servicesCsv",
          "label": "Service bindings CSV",
          "value": "name,namespace,protocol,address,portStart,portEnd,ipv6Only\nWeb,host-a,tcp,0.0.0.0,80,80,\nAdmin,host-a,tcp,127.0.0.1,80,80,\nIPv6,host-a,tcp,::,443,443,true",
          "type": "textarea",
          "maxLength": 500000,
          "help": "Headers: name,namespace,protocol,address,portStart,portEnd,ipv6Only. Use tcp, udp or sctp; numeric IPv4 or IPv6; and inclusive integer ports from 1 to 65535. For IPv6 set ipv6Only to true or false; leave it empty for IPv4. Names and namespaces are 1 to 200 characters. Quote cells containing commas or line breaks."
        }
      ],
      "registrationFamily": "network-planning",
      "input": false,
      "presentation": "metrics",
      "note": "Compare exclusive listener assignments within the same supplied host or network namespace and transport. Port ranges include both endpoints. A wildcard overlaps all addresses in its family. An IPv6 wildcard also overlaps IPv4 when ipv6Only is false. IPv4-mapped IPv6 addresses use IPv4 identity and require an empty ipv6Only field. Scoped link-local addresses retain their interface identity. Service names remain unchanged. No DNS lookup, real socket probe, NAT translation, socket reuse, multicast or firewall reachability is inferred. More than 5000 conflicting pairs rejects the full report rather than truncating it. Runs locally without uploads. Limit: 500000 combined input characters, 1000 services and 5000 conflicting pairs. Complete JSON and JSON Pointer CSV exports are each capped at 2000000 characters; CSV contains at most 200000 typed values. Preview shows at most 200 rows. Calculations stop after 10 seconds. Downloads retain your source inputs, units, assumptions and complete results.",
      "inputMaxLength": 500000,
      "inputErrorCode": "NETWORK_PLANNING_INPUT",
      "example": {
        "input": "",
        "options": {
          "servicesCsv": "name,namespace,protocol,address,portStart,portEnd,ipv6Only\nWeb,host-a,tcp,0.0.0.0,80,80,\nAdmin,host-a,tcp,127.0.0.1,80,80,\nIPv6,host-a,tcp,::,443,443,true"
        }
      },
      "experience": {
        "automatic": false,
        "single": false,
        "inputMaxLength": 500000,
        "inputMode": "text",
        "label": "Your text",
        "placeholder": "Type or paste your input…",
        "help": "Up to 500,000 characters. Review the settings before running.",
        "action": null
      },
      "mode": "explicit",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Port mapping validator\n\n- Human page: https://happytails.ai/en/developer-tools/port-mapping-validator/\n- Markdown: https://happytails.ai/en/developer-tools/port-mapping-validator.md\n- Structured JSON: https://happytails.ai/agents/en/developer-tools/port-mapping-validator/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `port-mapping-validator` |\n| Category | developer-tools |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Use the visible action or interactive controls. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nCompare exclusive listener assignments within the same supplied host or network namespace and transport. Port ranges include both endpoints. A wildcard overlaps all addresses in its family. An IPv6 wildcard also overlaps IPv4 when ipv6Only is false. IPv4-mapped IPv6 addresses use IPv4 identity and require an empty ipv6Only field. Scoped link-local addresses retain their interface identity. Service names remain unchanged. No DNS lookup, real socket probe, NAT translation, socket reuse, multicast or firewall reachability is inferred. More than 5000 conflicting pairs rejects the full report rather than truncating it. Runs locally without uploads. Limit: 500000 combined input characters, 1000 services and 5000 conflicting pairs. Complete JSON and JSON Pointer CSV exports are each capped at 2000000 characters; CSV contains at most 200000 typed values. Preview shows at most 200 rows. Calculations stop after 10 seconds. Downloads retain your source inputs, units, assumptions and complete results.\n\n### Inputs and settings\n\nNo free-text input is required. Use the file inputs and/or settings below.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `servicesCsv` | Service bindings CSV | textarea | \"name,namespace,protocol,address,portStart,portEnd,ipv6Only\\nWeb,host-a,tcp,0.0.0.0,80,80,\\nAdmin,host-a,tcp,127.0.0.1,80,80,\\nIPv6,host-a,tcp,::,443,443,true\" |  |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nCompare exclusive listener assignments within the same supplied host or network namespace and transport. Port ranges include both endpoints. A wildcard overlaps all addresses in its family. An IPv6 wildcard also overlaps IPv4 when ipv6Only is false. IPv4-mapped IPv6 addresses use IPv4 identity and require an empty ipv6Only field. Scoped link-local addresses retain their interface identity. Service names remain unchanged. No DNS lookup, real socket probe, NAT translation, socket reuse, multicast or firewall reachability is inferred. More than 5000 conflicting pairs rejects the full report rather than truncating it. Runs locally without uploads. Limit: 500000 combined input characters, 1000 services and 5000 conflicting pairs. Complete JSON and JSON Pointer CSV exports are each capped at 2000000 characters; CSV contains at most 200000 typed values. Preview shows at most 200 rows. Calculations stop after 10 seconds. Downloads retain your source inputs, units, assumptions and complete results.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"port-mapping-validator\",\n  \"category\": \"developer-tools\",\n  \"built\": true,\n  \"requirements\": \"Compare exclusive listener assignments within the same supplied host or network namespace and transport. Port ranges include both endpoints. A wildcard overlaps all addresses in its family. An IPv6 wildcard also overlaps IPv4 when ipv6Only is false. IPv4-mapped IPv6 addresses use IPv4 identity and require an empty ipv6Only field. Scoped link-local addresses retain their interface identity. Service names remain unchanged. No DNS lookup, real socket probe, NAT translation, socket reuse, multicast or firewall reachability is inferred. More than 5000 conflicting pairs rejects the full report rather than truncating it. Runs locally without uploads. Limit: 500000 combined input characters, 1000 services and 5000 conflicting pairs. Complete JSON and JSON Pointer CSV exports are each capped at 2000000 characters; CSV contains at most 200000 typed values. Preview shows at most 200 rows. Calculations stop after 10 seconds. Downloads retain your source inputs, units, assumptions and complete results.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"servicesCsv\",\n        \"label\": \"Service bindings CSV\",\n        \"value\": \"name,namespace,protocol,address,portStart,portEnd,ipv6Only\\nWeb,host-a,tcp,0.0.0.0,80,80,\\nAdmin,host-a,tcp,127.0.0.1,80,80,\\nIPv6,host-a,tcp,::,443,443,true\",\n        \"type\": \"textarea\",\n        \"maxLength\": 500000,\n        \"help\": \"Headers: name,namespace,protocol,address,portStart,portEnd,ipv6Only. Use tcp, udp or sctp; numeric IPv4 or IPv6; and inclusive integer ports from 1 to 65535. For IPv6 set ipv6Only to true or false; leave it empty for IPv4. Names and namespaces are 1 to 200 characters. Quote cells containing commas or line breaks.\"\n      }\n    ],\n    \"registrationFamily\": \"network-planning\",\n    \"input\": false,\n    \"presentation\": \"metrics\",\n    \"note\": \"Compare exclusive listener assignments within the same supplied host or network namespace and transport. Port ranges include both endpoints. A wildcard overlaps all addresses in its family. An IPv6 wildcard also overlaps IPv4 when ipv6Only is false. IPv4-mapped IPv6 addresses use IPv4 identity and require an empty ipv6Only field. Scoped link-local addresses retain their interface identity. Service names remain unchanged. No DNS lookup, real socket probe, NAT translation, socket reuse, multicast or firewall reachability is inferred. More than 5000 conflicting pairs rejects the full report rather than truncating it. Runs locally without uploads. Limit: 500000 combined input characters, 1000 services and 5000 conflicting pairs. Complete JSON and JSON Pointer CSV exports are each capped at 2000000 characters; CSV contains at most 200000 typed values. Preview shows at most 200 rows. Calculations stop after 10 seconds. Downloads retain your source inputs, units, assumptions and complete results.\",\n    \"inputMaxLength\": 500000,\n    \"inputErrorCode\": \"NETWORK_PLANNING_INPUT\",\n    \"example\": {\n      \"input\": \"\",\n      \"options\": {\n        \"servicesCsv\": \"name,namespace,protocol,address,portStart,portEnd,ipv6Only\\nWeb,host-a,tcp,0.0.0.0,80,80,\\nAdmin,host-a,tcp,127.0.0.1,80,80,\\nIPv6,host-a,tcp,::,443,443,true\"\n      }\n    },\n    \"experience\": {\n      \"automatic\": false,\n      \"single\": false,\n      \"inputMaxLength\": 500000,\n      \"inputMode\": \"text\",\n      \"label\": \"Your text\",\n      \"placeholder\": \"Type or paste your input…\",\n      \"help\": \"Up to 500,000 characters. Review the settings before running.\",\n      \"action\": null\n    },\n    \"mode\": \"explicit\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nFind overlapping listener addresses and port ranges in a supplied service inventory, including dual-stack assumptions.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Port mapping validator\n\n1. Enter one service binding per CSV row with a name, host or network namespace, protocol, numeric address and inclusive port range.\n2. For IPv6, set ipv6Only to true or false; leave that field empty for IPv4 and IPv4-mapped addresses.\n3. Review every conflicting pair and download the complete inventory and results.\n\n## Useful next steps\n\n- [IP allowlist overlap checker](https://happytails.ai/en/developer-tools/ip-allowlist-overlap-checker/) ([Markdown](https://happytails.ai/en/developer-tools/ip-allowlist-overlap-checker.md))\n\n- [IPv6 address scope inspector](https://happytails.ai/en/developer-tools/ipv6-address-scope-inspector/) ([Markdown](https://happytails.ai/en/developer-tools/ipv6-address-scope-inspector.md))\n\n- [MTU overhead calculator](https://happytails.ai/en/developer-tools/mtu-overhead-calculator/) ([Markdown](https://happytails.ai/en/developer-tools/mtu-overhead-calculator.md))\n\n## Compare bindings within the same namespace\n\nTwo services are compared only when their supplied namespace and transport protocol match. Port ranges include both endpoints. A wildcard IPv4 address overlaps specific IPv4 addresses; an IPv6 wildcard also overlaps IPv4 when ipv6Only is false. Scoped link-local addresses retain their interface identity.\n\n### Inventory analysis does not probe a running host\n\nThe checker does not resolve hostnames, open sockets or inspect a firewall. It models exclusive listeners, without inferring socket reuse, multicast or NAT translation rules. Different namespaces are treated as separate hosts or network namespaces. More than 5000 conflicts rejects the complete report instead of hiding later pairs.\n"
}