ipv4_is_private()

适用于:✅Azure 数据资源管理器Azure MonitorMicrosoft Sentinel

检查 IPv4 字符串地址是否属于一组专用网络 IP。

专用网络地址最初是为帮助延迟 IPv4 地址的耗尽而定义的。 源自或寻址到某个专用 IP 地址的 IP 数据包无法通过公共 Internet 进行路由。

专用 IPv4 地址

Internet 工程任务组 (IETF) 已指示 Internet 号码分配机构 (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)

详细了解语法约定

参数

客户 类型​​ 必需 说明
ip string ✔️ 一个表示 IPv4 地址的表达式。 可以使用 IP 前缀表示法对 IPv4 字符串进行掩码操作。

IP 前缀表示法

IP 前缀表示法(也称 CIDR 表示法)是表示 IP 地址及其关联网络掩码的简明方式。 格式为 <base IP>/<prefix length>,其中,前缀长度是网络掩码中前导 1 位的数目。 前缀长度决定了属于该网络的 IP 地址范围。

对于 IPv4,前缀长度是介于 0 和 32 之间的数字。 因此,表示法 192.168.2.0/24 表示 IP 地址 192.168.2.0,且网络掩码为 255.255.255.0。 此网络掩码具有 24 个前导 1 位,或者说前缀长度为 24。

对于 IPv6,前缀长度是介于 0 和 128 之间的数字。 因此,表示法 fe80::85d:e82c:9446:7994/120 表示 IP 地址 fe80::85d:e82c:9446:7994 且网络掩码为 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00。 此网络掩码具有 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
192.168.1.1/24
127.0.0.1 false