Intervalo IP para CIDR
Digite o endereço IPv4 inicial e o final e receba o menor número de blocos CIDR que cobrem exatamente esse intervalo: de 192.168.1.13 a 192.168.1.20 saem quatro blocos, sem deixar nenhum endereço de fora e sem invadir os vizinhos. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- IP inicial
- 192.168.1.13
- End ip
- 192.168.1.20
- Início como inteiro
- 3.232.235.789
- Fim como inteiro
- 3.232.235.796
- Quantidade de endereços
- 8
- Quantidade de CIDR
- 4
Firewalls, security groups na nuvem e anúncios BGP quase nunca aceitam um par arbitrário de endereços IPv4 de início e fim. Eles exigem prefixos CIDR: blocos compactos em potência de dois escritos como endereço barra comprimento de prefixo. Transformar um intervalo humano como 192.168.1.13 até 192.168.1.20 no menor conjunto de CIDRs que cubra exatamente esses endereços—sem hosts faltando e sem invadir vizinhos—é uma tarefa clássica de engenharia de redes. Esta calculadora de intervalo IP para CIDR faz essa conversão com um algoritmo guloso determinístico: a partir do extremo inferior do intervalo emite repetidamente o maior bloco alinhado que ainda cabe no trecho restante. Você recebe a lista plana de strings CIDR, o primeiro e o último endereço de cada bloco, os tamanhos e a contagem total de hosts.
O que significa cobertura CIDR mínima e exata
Um bloco CIDR é um trecho contíguo de endereços cujo comprimento é uma potência de dois e cujo primeiro endereço está alinhado a esse comprimento: para o prefixo p o tamanho do bloco é dois elevado a (32 menos p), e o endereço de rede deve ser divisível por esse tamanho. Cobrir um intervalo com CIDRs é fácil se você admitir desperdício—basta um supernet grande demais—mas o desperdício é perigoso em listas de permissão e dispendioso em listas de negação.
Cobertura exata significa que a união dos blocos emitidos iguala o intervalo original em sentido de conjuntos: cada endereço dentro do intervalo aparece em exatamente um bloco, e nenhum endereço fora aparece. Mínima significa o menor número desses blocos, o que o método guloso padrão alcança tomando sempre o maior bloco legal na borda esquerda atual. Por exemplo, os oito endereços de 192.168.1.13 a 192.168.1.20 viram quatro prefixos: uma rota de host para .13, um /31 para .14–.15, um /30 para .16–.19 e uma rota de host para .20.
Um único /29 teria ido de .16 a .23 e ultrapassado; um /28 teria sido pior. A calculadora não inventa suposições de rede privada: faixas públicas, privadas, multicast e loopback são tratadas como inteiros de 32 bits, então a mesma lógica serve para RFC1918, CGNAT e espaço público.
Onde converter intervalos em blocos poupa trabalho
Equipes de rede e de plataforma colam em tickets pares início–fim do fornecedor e precisam da forma CIDR antes de abrir uma mudança. Módulos de landing zone na nuvem aceitam apenas listas CIDR; converter colunas de planilha de pools DHCP ou faixas de interconexão de parceiros em locals Terraform é um trabalho comum de CI.
Prefira esta capacidade quando a intenção de busca for conversão de intervalo em prefixo; use uma calculadora de sub-rede geral quando você já tiver um único CIDR e precisar de máscara, wildcard ou detalhe de hosts desse bloco isolado.
Casos de uso
Autoria de firewall e ACL
Transforme intervalos IPv4 início–fim fornecidos pelo parceiro na lista mínima de CIDR que o firewall, security group ou sintaxe de ACL do roteador realmente aceita.
Infraestrutura como código e CI
Converta faixas de planilha ou CMDB em arrays CIDR de Terraform, Ansible ou policy-as-code em uma etapa determinística de pipeline.
Enriquecimento de threat intel e SOAR
Normalize faixas de indicadores de tickets em conjuntos CIDR exatos para condições de correspondência sem ultrapassar vizinhos benignos.
Perguntas frequentes
Em que isso difere de uma calculadora de sub-rede?
Uma calculadora de sub-rede costuma partir de um CIDR e informar máscara, hosts e limites. Esta ferramenta parte de um par início–fim arbitrário e produz a cobertura multi-CIDR mínima.
Por que um único intervalo vira vários blocos CIDR?
Cada bloco precisa ter uma quantidade de endereços que seja potência de dois e começar em um limite alinhado. Os oito endereços de 192.168.1.13 a 192.168.1.20 não cabem em um só bloco, então viram quatro: .13 sozinho, .14 a .15, .16 a .19 e .20 sozinho.
Por que não cobrir o intervalo com um único bloco maior?
Porque ele invadiria endereços vizinhos. Um /29 que começa em .16 vai até .23, além do fim do intervalo. Em uma lista de permissões isso liberaria endereços que você não queria abrir, por isso só saem blocos exatos.
O que acontece se eu inverter o início e o fim?
O intervalo é recusado em vez de ser invertido em silêncio. O início precisa ser menor ou igual ao fim, porque uma troca silenciosa esconderia um erro de copiar e colar na sua lista.
Quantos blocos um intervalo IPv4 pode exigir no máximo?
Nunca mais de 32. O espaço inteiro, de 0.0.0.0 a 255.255.255.255, chega a se reduzir a um único bloco, 0.0.0.0/0, então o resultado é sempre curto.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/ip-range-to-cidr \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_ip":"192.168.1.13","end_ip":"192.168.1.20"}'const res = await fetch("https://api.kit.forhosting.com/dev/ip-range-to-cidr", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_ip": "192.168.1.13",
"end_ip": "192.168.1.20"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/ip-range-to-cidr",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_ip": "192.168.1.13",
"end_ip": "192.168.1.20"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/ip-range-to-cidr", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_ip":"192.168.1.13","end_ip":"192.168.1.20"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_ip":"192.168.1.13","end_ip":"192.168.1.20"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/ip-range-to-cidr", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"start_ip": "192.168.1.13",
"end_ip": "192.168.1.20"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.ip_range_to_cidr",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
O que significa cobertura CIDR mínima e exata
Um intervalo IPv4 inclusivo é cada endereço de start_ip até end_ip contado como inteiros de 32 bits.
Contrato de entrada, formato da resposta e validação
O laço guloso emite no máximo trinta e dois blocos para qualquer intervalo IPv4, então o tamanho da resposta permanece pequeno mesmo de 0.0.0.0 a 255.255.255.255, que colapsa no único prefixo 0.0.0.0/0. Combine a lista cidrs com o dialeto do seu firewall—CIDRs de security groups AWS, iptables, nftables, object-groups de ACL Cisco ou listas IP de CDN de borda—sem mais matemática do seu lado. Envie por POST um corpo JSON com duas strings obrigatórias: start_ip e end_ip, cada uma um IPv4 estrito em quatro octetos decimais de 0 a 255 sem zeros à esquerda (assim 192.168.1.1 é válido e 192.168.01.1 é rejeitado). Espaços em branco ao redor da string são removidos. start_ip deve ser menor ou igual a end_ip; intervalos invertidos falham com invalid_input em vez de trocar as pontas em silêncio, porque a troca silenciosa esconde erros de copiar e colar na automação. Em sucesso, o corpo devolve start_ip e end_ip normalizados, suas formas inteiras sem sinal start_int e end_int, o address_count inclusivo, o cidr_count, um array plano cidrs de strings como 10.0.0.0/8, e um array blocks de objetos com cidr, prefix, network, first_ip, last_ip e size. Campos ausentes, valores que não são string, octetos malformados, octetos fora da faixa e start maior que end geram invalid_input e não são cobrados.
Onde uma API de intervalo IP para CIDR agrega valor
Playbooks SIEM e SOAR que expandem faixas de threat intel em condições de correspondência se beneficiam de um endpoint de parse puro sem rede de saída própria.
Perguntas técnicas
Como converto um intervalo IPv4 em blocos CIDR?
Envie start_ip e end_ip como strings em quatro octetos com start ≤ end. A API devolve a lista mínima exata em cidrs mais network, first_ip, last_ip, prefix e size por bloco.
A calculadora cobre o intervalo de forma exata?
Sim. O algoritmo guloso nunca ultrapassa end_ip nem omite endereços do intervalo inclusivo, de modo que a união dos blocos iguala o intervalo original.
E se start_ip for maior que end_ip?
A tarefa falha com invalid_input. As pontas não são trocadas automaticamente para que bugs de automação permaneçam visíveis; corrija a ordem e tente de novo.
Quanto custa a calculadora de intervalo IP para CIDR?
A ferramenta do navegador é gratuita. Pedidos API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.