Geolocated Level 2 Subdivision with MaxMind GeoIP2 (mm2subdivision2)
Description
Uses MaxMind GeoIP2 services to return the level 2 geographic subdivision associated with an IPv4 or IPv6 address.Â
A string of up to three characters containing the region-portion of the ISO 3166-2 code for the second level region associated with the IP address. Some countries have two levels of subdivisions, in which case this is the most specific. For example, in the United Kingdom this will be a a county like "Devon", not a country like "England". However, for US locations, the level 2 subdivision will be the county.
Learn more in the MaxMind GeoIP2 developer documentation.
How does it work in the search window?
This operation only requires one argument:
Argument | Data type |
---|---|
Ip (v4 or v6) mandatory | ip, ip6 |
The data type of the new column is string.
Example
We want to get the level 2 geographic subdivisions associated with the IP addresses in our clientIpAddress column, so we click Create column and select the Geolocated Level 2 Subdivision with MaxMind GeoIP2 operation. Select clientIpAddress as the argument and assign a name to the new column - let's call it level2SubRegion.
The result is a column of string data type containing the ISO 3166-2 code for the subdivision.
How does it work in LINQ?
Use the operator select
... as
... and add the operation syntax to create the new column.Â
mm2subdivision2(ip)
mm2subdivision2(ip6)
Examples
Copy the following LINQ script and try the above example on the demo.ecommerce.data
 table.Â
from demo.ecommerce.data
select mm2subdivision2(clientIpAddress) as level1SubRegion
In order to have context for the level 2 geographic subdivision, it's important to know in which country and level 1 region each IP address is located. In this example, we use the Geolocated Country with MaxMind GeoIP2 (mm2country) and Geolocated Level 1 Subdivision with MaxMind GeoIP2 (mm2subdivision1) operations to provide this context.
from demo.ecommerce.data
select mm2country(clientIpAddress) as country,
mm2subdivision1(clientIpAddress) as level1SubRegion,
mm2subdivision2(clientIpAddress) as level2SubRegion