Introduction

The parse_ipv4_mask function in APL converts an IPv4 address and its associated netmask into a signed 64-bit wide, long number representation in big-endian order. Use this function when you need to process or compare IPv4 addresses efficiently as numerical values, such as for IP range filtering, subnet calculations, or network analysis.

This function is particularly useful in scenarios where you need a compact and precise way to represent IP addresses and their masks for further aggregation or filtering.

For users of other query languages

If you come from other query languages, this section explains how to adjust your existing queries to achieve the same results in APL.

Usage

Syntax

parse_ipv4_mask(ip, prefix)

Parameters

NameTypeDescription
ipstringThe IPv4 address to convert to a long number.
prefixintAn integer from 0 to 32 representing the number of most-significant bits.

Returns

  • A signed, 64-bit long number in big-endian order if the conversion is successful.
  • null if the conversion is unsuccessful.

Example

print parse_ipv4_mask("127.0.0.1", 24)

Use case example

Use parse_ipv4_mask to analyze logs and filter entries based on IP ranges.

Query

['sample-http-logs']
| extend masked_ip = parse_ipv4_mask('192.168.0.1', 24)

Run in Playground

Output

_timeurimethodmasked_ip
2024-11-14T10:00:00/index.htmlGET3,232,235,520
  • ipv4_compare: Compares two IPv4 addresses lexicographically. Use for sorting or range evaluations.
  • ipv4_is_in_range: Checks if an IP address is within a specified range.
  • parse_ipv4: Converts a dotted-decimal IP address into a numeric representation.