Verifica IPv6 nel prefisso
Lo strumento di verifica dei prefissi IPv6 risponde a una domanda precisa di routing e controllo degli accessi: questo indirizzo appartiene a quel blocco CIDR?
Esegui gratis nel browser
Inserisca un indirizzo IPv6 e un prefisso come 2001:db8:1234::/48. Lo strumento confronta i bit di rete più significativi, restituisce chiaramente vero o falso e mostra la rete normalizzata con il primo e l'ultimo indirizzo. Gestisce le notazioni IPv6 compressa, estesa e con IPv4 incorporato tramite aritmetica esatta a 128 bit, senza arrotondare i confini o le lunghezze di prefisso insolite.
Che cosa significa appartenere a un prefisso IPv6
Un prefisso IPv6 divide un indirizzo di 128 bit in bit di rete e bit host. Il numero dopo la barra indica quanti bit più significativi identificano la rete. Per esempio, un /48 fissa i primi 48 bit e lascia disponibili gli altri 80 all'interno del blocco. Un indirizzo appartiene al prefisso quando tutti i bit di rete fissi coincidono; il modo in cui è scritto non conta. Questo aspetto è importante perché IPv6 consente di omettere gli zeri iniziali, comprimere le sequenze con :: e rappresentare lo stesso valore con stringhe dall'aspetto diverso. Lo strumento converte entrambi i valori in interi esatti, costruisce la maschera per la lunghezza richiesta e confronta solo i bit che determinano l'appartenenza. Inoltre normalizza il prefisso fornito al suo vero confine di rete. Se Lei inserisce 2001:db8:1234:99::1/48, la rete confrontata resta 2001:db8:1234::/48. Il risultato segue quindi la semantica CIDR, senza affidarsi a fragili confronti testuali o tra gruppi separati dai due punti.
Come leggere il risultato booleano e l'intervallo
Il risultato principale è in_prefix, un valore booleano utilizzabile direttamente nel codice, nelle regole di convalida, nei controlli di routing o nei rapporti di audit. La risposta restituisce anche indirizzo e prefisso in forma canonica, così Lei può vedere esattamente che cosa è stato confrontato. I campi first_address e last_address descrivono gli estremi inclusivi della rete, mentre matched_network_range li presenta come intervallo compatto e leggibile. Questi dati compaiono sia con un risultato vero sia con uno falso: nel secondo caso, l'intervallo spiega quale blocco non contiene l'indirizzo. Il comportamento ai confini è esatto. Il primo e l'ultimo indirizzo appartengono entrambi al prefisso, perché IPv6 non riserva un indirizzo broadcast. Un /128 contiene un solo indirizzo, quindi i due estremi coincidono. Un /0 comprende ogni indirizzo IPv6. Non si usano valori in virgola mobile: maschere e intervalli sono calcolati con interi esatti a 128 bit, anche molto oltre il limite sicuro di JavaScript.
Input validi ed errori comuni
Fornisca address come semplice indirizzo IPv6 e prefix come rete IPv6 seguita da una lunghezza compresa tra 0 e 128. Sono accettate la notazione compressa come 2001:db8::1, quella completamente estesa e le terminazioni IPv6 con IPv4 incorporato come ::ffff:192.0.2.1. Lo strumento rifiuta intenzionalmente dati ambigui o fuori ambito. address non può includere una propria lunghezza dopo la barra, prefix deve includerla, i valori solo IPv4 non vengono interpretati come IPv6 e gli identificatori di zona come %eth0 sono respinti, perché descrivono il contesto di un'interfaccia e non fanno parte dei 128 bit. Gruppi esadecimali non validi, più compressioni ::, gruppi oltre quattro cifre e lunghezze fuori intervallo producono un errore di input invece di una risposta ipotizzata. Questo rigore aiuta nell'automazione: una configurazione malformata fallisce in modo visibile prima di diventare una decisione errata per una lista consentita. Per autorizzazioni delicate, ricordi che l'appartenenza è solo un dato e applichi anche verifiche di identità, fiducia e criteri.
Casi d'uso
Convalidare un elenco consentito IPv6
Verifichi che l'indirizzo di un client o servizio rientri in un blocco CIDR approvato prima di applicare una regola di rete.
Diagnosticare la configurazione di routing
Confermi che un indirizzo cada nel prefisso previsto e consulti i confini normalizzati esatti in caso contrario.
Controllare dati di gestione degli indirizzi
Confronti gli indirizzi importati con i prefissi IPv6 assegnati e segnali i record collocati nella rete sbagliata.
Domande frequenti
Quanto costa una verifica?
Ogni richiesta API costa $0.002. La stessa verifica deterministica è disponibile gratuitamente anche nel browser.
Sono accettati gli indirizzi IPv6 compressi?
Sì. Sono ammesse la compressione standard :: e l'omissione degli zeri iniziali; l'indirizzo viene poi restituito in forma canonica minuscola.
Il primo e l'ultimo indirizzo sono inclusi?
Sì. L'intervallo indicato è inclusivo e IPv6 non riserva un indirizzo broadcast alla fine del prefisso.
Che cosa accade se il prefisso contiene bit host?
Prima del confronto viene normalizzato al vero confine di rete e nel risultato compare il CIDR normalizzato.
Posso verificare un indirizzo IPv4?
No. Questa capacità è specifica per IPv6, ma supporta una notazione IPv6 valida con IPv4 incorporato.
Anche un risultato falso include l'intervallo?
Sì. La risposta mostra l'intervallo inclusivo verificato, così Lei può capire perché l'indirizzo ne resta fuori.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev/ipv6-in-prefix \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"address":"2001:db8:1234::42","prefix":"2001:db8:1234::/48"}'const res = await fetch("https://api.kit.forhosting.com/dev/ipv6-in-prefix", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"address": "2001:db8:1234::42",
"prefix": "2001:db8:1234::/48"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/ipv6-in-prefix",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"address": "2001:db8:1234::42",
"prefix": "2001:db8:1234::/48"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/ipv6-in-prefix", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"address":"2001:db8:1234::42","prefix":"2001:db8:1234::/48"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"address":"2001:db8:1234::42","prefix":"2001:db8:1234::/48"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/ipv6-in-prefix", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"address": "2001:db8:1234::42",
"prefix": "2001:db8:1234::/48"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.ipv6_in_prefix",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |