ipv4_is_private()

Verifica se l'indirizzo della stringa IPv4 appartiene a un set di indirizzi IP di rete privata.

Gli indirizzi di rete privati sono stati originariamente definiti per ritardare l'esaurimento degli indirizzi IPv4. I pacchetti IP provenienti o indirizzati a un indirizzo IP privato non possono essere instradati tramite la rete Internet pubblica.

Indirizzi IPv4 privati

Internet Engineering Task Force (IETF) ha indirizzato l'Autorità IANA (Internet Assigned Numbers Authority) a riservare gli intervalli di indirizzi IPv4 seguenti per le reti private:

Intervallo indirizzi IP Numero di indirizzi Blocco CIDR più grande (subnet mask)
10.0.0.0 – 10.255.255.255 16777216 10.0.0.0/8 (255.0.0.0)
172.16.0.0 – 172.31.255.255 1048576 172.16.0.0/12 (255.240.0.0)
192.168.0.0 – 192.168.255.255 65536 192.168.0.0/16 (255.255.0.0)
ipv4_is_private('192.168.1.1/24') == true
ipv4_is_private('10.1.2.3/24') == true
ipv4_is_private('202.1.2.3') == false
ipv4_is_private("127.0.0.1") == false

Sintassi

ipv4_is_private(Ip)

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
Ip string ✔️ Espressione che rappresenta un indirizzo IPv4. Le stringhe IPv4 possono essere mascherate usando la notazione con prefisso IP.

Notazione del prefisso IP

La notazione con prefisso IP (nota anche come notazione CIDR) è un modo conciso di rappresentare un indirizzo IP e la relativa maschera di rete associata. Il formato è <base IP>/<prefix length>, dove la lunghezza del prefisso è il numero di bit iniziali 1 nella maschera di rete. La lunghezza del prefisso determina l'intervallo di indirizzi IP che appartengono alla rete.

Per IPv4, la lunghezza del prefisso è un numero compreso tra 0 e 32. La notazione 192.168.2.0/24 rappresenta quindi l'indirizzo IP 192.168.2.0 con una maschera di rete 255.255.255.0. Questa maschera di rete ha 24 bit iniziali 1 o una lunghezza del prefisso pari a 24.

Per IPv6, la lunghezza del prefisso è un numero compreso tra 0 e 128. La notazione fe80::85d:e82c:9446:7994/120 rappresenta l'indirizzo IP fe80::85d:e82c:9446:7994 con una maschera netmask di ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00. Questa maschera di rete ha 120 bit iniziali o una lunghezza del prefisso pari a 120.

Restituisce

  • true: se l'indirizzo IPv4 appartiene a uno qualsiasi degli intervalli di rete privata.
  • false:Altrimenti.
  • null: se l'analisi dell'input come stringa di indirizzo IPv4 non è riuscita.

Esempio: verificare se IPv4 appartiene a una rete privata

datatable(ip_string:string)
[
 '10.1.2.3',
 '192.168.1.1/24',
 '127.0.0.1',
]
| extend result = ipv4_is_private(ip_string)

Output

ip_string result
10.1.2.3 true
192.168.1.1/24 true
127.0.0.1 false