{"id":"ipv4-range-to-cidrs","version":"1.0.0","description":"Convert an arbitrary IPv4 address range into the minimal list of CIDR blocks that exactly covers it.","supported_operations":["ipv4 range to cidr","convert ipv4 range to cidrs","summarize ipv4 address range"],"unsupported_operations":["IPv6","hyphenated single-string ranges"],"semantics":["first_address and last_address are canonical dotted-decimal IPv4 addresses; first_address must not exceed last_address as a uint32.","cidrs is the minimal ordered list of non-overlapping CIDR blocks (largest-first at each step) whose union is exactly [first_address, last_address].","A single address (first_address equal to last_address) yields one /32 block."],"limits":{"max_address_length":15,"max_output_blocks":64},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["first_address","last_address"],"properties":{"first_address":{"type":"string","maxLength":15,"pattern":"^(?:0|[1-9][0-9]{0,2})(?:\\.(?:0|[1-9][0-9]{0,2})){3}$"},"last_address":{"type":"string","maxLength":15,"pattern":"^(?:0|[1-9][0-9]{0,2})(?:\\.(?:0|[1-9][0-9]{0,2})){3}$"}}},"output_schema":{"type":"object","additionalProperties":false,"required":["cidrs","count"],"properties":{"cidrs":{"type":"array","items":{"type":"string","maxLength":18},"maxItems":64},"count":{"type":"integer","minimum":1,"maximum":64}}},"examples":[{"input":{"first_address":"192.168.1.9","last_address":"192.168.1.11"},"output":{"cidrs":["192.168.1.9/32","192.168.1.10/31"],"count":2}}],"execute_url":"/v1/tools/ipv4-range-to-cidrs/versions/1.0.0/execute"}