Поделиться через


ipv4_is_private()

Область применения: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Проверяет, принадлежит ли ip-адрес строки IPv4 набору IP-адресов частной сети.

Адреса частной сети изначально определены для задержки исчерпания IPv4-адресов. IP-пакеты, исходящие из частного IP-адреса, не могут быть перенаправлены через общедоступный Интернет.

Частные IPv4-адреса

Целевая группа по разработке Интернета (IETF) направила центру IANA для резервирования следующих диапазонов адресов IPv4 для частных сетей:

Диапазон IP-адресов Число адресов Самый большой блок CIDR (маска подсети)
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

Синтаксис

ipv4_is_private(протокол IP)

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
протокол IP string ✔️ Выражение, представляющее IPv4-адрес. Строки IPv4 можно маскировать с помощью нотации IP-префикса.

Нотация IP-префикса

Нотация IP-префикса (также известная как нотация CIDR) — это краткий способ представления IP-адреса и связанной с ней сетевой маски. Формат: <base IP>/<prefix length>длина префикса — это число ведущих 1 битов в netmask. Длина префикса определяет диапазон IP-адресов, принадлежащих сети.

Для IPv4 длина префикса составляет от 0 до 32. Поэтому нотация 192.168.2.0/24 представляет IP-адрес 192.168.2.0 с netmask 255.255.255.0. Эта netmask имеет 24 ведущих 1 бита или длину префикса 24.

Для IPv6 длина префикса составляет от 0 до 128. Поэтому нотация fe80::85d:e82c:9446:7994/120 представляет IP-адрес fe80::85d:e85d:9446:7994 с netmask ffff:ffff:ffff. Эта netmask имеет 120 ведущих 1 битов или длину префикса 120.

Возвраты

  • true: если IPv4-адрес принадлежит любому из диапазонов частной сети.
  • false:Иначе.
  • null: если синтаксический анализ входных данных как строка адреса IPv4 не выполнена.

Пример. Проверка принадлежности IPv4 к частной сети

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

Выходные данные

ip_string result
10.1.2.3 true
192.168.1.1/24 true
127.0.0.1 false