rir_ipv4_stats
Fetch global IPv4, IPv6, and ASN allocation statistics from all five Regional Internet Registries to track adoption and exhaustion states in real time.
Instructions
Fetch global IPv4, IPv6, and ASN allocation statistics from all 5 RIRs.
Parses the NRO Extended Delegation Stats files — the authoritative daily publication of how each RIR has distributed address space:
How many IPv4 prefixes allocated (to ISPs) vs assigned (to end users)
Remaining free IPv4 pool (where published — most RIRs are exhausted)
IPv6 prefix count and growth
Total ASNs issued
Why this matters:
IPv4 was exhausted at IANA in 2011
APNIC exhausted in 2011, RIPE in 2012, ARIN in 2015
LACNIC near exhaustion 2020, AFRINIC followed
IPv6 transition is the only long-term solution
This tool lets you track adoption and exhaustion state in real time
Results are cached for 24 hours (stats files are published once daily).
Args: params (IPv4StatsInput): - rir_filter (str, optional): Filter to one RIR ('AFRINIC', 'APNIC', 'ARIN', 'LACNIC', 'RIPE'). Leave empty for all 5. - include_blocks (bool): Include raw delegated IPv4 blocks for the selected RIR. Requires rir_filter to be set. - status_filter (str, optional): allocated | assigned | available (free is normalized). - country_filter (str, optional): 2-letter country code filter (e.g. 'GH', 'ZA'). - limit (int): Max number of block rows when include_blocks=true. - offset (int): Pagination offset for block rows. - response_format (str): 'markdown' (default) or 'json'
Returns: str: Per-RIR table of IPv4/IPv6/ASN counts with totals and exhaustion context. JSON schema: { "queried_at": str, "rirs": [{"rir": str, "region": str, "ipv4_total_prefixes": int, "ipv4_allocated": int, "ipv4_assigned": int, "ipv4_available": int, "ipv6_total_prefixes": int, "asn_total": int, "stats_date": str}], "global_ipv4_prefixes": int, "global_ipv6_prefixes": int, "global_asns": int, "ipv4_blocks": [ {"rir": str, "country": str|null, "start_ip": str, "end_ip": str, "address_count": int, "date": str|null, "status": str} ], "blocks_total": int, "blocks_returned": int, "blocks_limit": int|null, "blocks_offset": int|null, "blocks_filters": {"rir_filter": str|null, "status_filter": str|null, "country_filter": str|null} }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |