ipv4_compare
Usage#
Syntax#
ipv4_compare(ip1, ip2)Parameters#
| Parameter | Type | Description |
|---|---|---|
ip1 |
string | The first IPv4 address to compare. |
ip2 |
string | The second IPv4 address to compare. |
Returns#
- Returns
1if the long representation ofip1is greater than the long representation ofip2 - Returns
0if the long representation ofip1is equal to the long representation ofip2 - Returns
-1if the long representation ofip1is less than the long representation ofip2 - Returns
nullif the conversion fails.
Use case example#
You can use ipv4_compare to sort logs based on IP addresses or to identify connections between specific IPs.
Query
['sample-http-logs']
| extend ip1 = '192.168.1.1', ip2 = '192.168.1.10'
| extend comparison = ipv4_compare(ip1, ip2)Output
| ip1 | ip2 | comparison |
|---|---|---|
| 192.168.1.1 | 192.168.1.10 | -1 |
This query compares two hardcoded IP addresses. It returns -1, indicating that 192.168.1.1 is lexicographically less than 192.168.1.10.
List of related functions#
- ipv4_is_in_range: Checks if an IP address is within a specified range.
- ipv4_is_private: Checks if an IPv4 address is within private IP ranges.
- parse_ipv4: Converts a dotted-decimal IP address into a numeric representation.
Other query languages#
Splunk SPL users
In Splunk SPL, similar functionality can be achieved using sort or custom commands. In APL, ipv4_compare is a dedicated function for comparing two IPv4 addresses.
Splunk example
| eval comparison = if(ip1 < ip2, -1, if(ip1 == ip2, 0, 1))APL equivalent
| extend comparison = ipv4_compare(ip1, ip2)ANSI SQL users
In ANSI SQL, you might manually parse or order IP addresses as strings. In APL, ipv4_compare simplifies this task with built-in support for IPv4 comparison.
SQL example
SELECT CASE
WHEN ip1 < ip2 THEN -1
WHEN ip1 = ip2 THEN 0
ELSE 1
END AS comparison
FROM ips;APL equivalent
['sample-http-logs']
| extend comparison = ipv4_compare(ip1, ip2)