R client for the IPGeolocation.io IP Location API. This package provides a minimal interface to query the IPGeolocation.io IP Location API from R.
Until published on CRAN:
# install.packages("remotes")
remotes::install_github("ipgeolocation/ipgeolocation-r")Once available on CRAN:
install.packages("ipgeolocation")An API key is required. You can obtain one from https://ipgeolocation.io/.
It is recommended to store the API key in an environment variable:
Sys.setenv(IPGEOLOCATION_API_KEY = "YOUR_API_KEY")
api_key <- Sys.getenv("IPGEOLOCATION_API_KEY")library(ipgeolocation)
result <- ipgeo(
ip = "8.8.8.8",
api_key = api_key
)
str(result)The fields parameter allows you to return only selected objects or nested
fields. It supports:
- Entire objects (e.g.,
"location") - Nested fields using dot notation (e.g.,
"location.city")
You may provide either a character vector or a comma-separated string.
# Entire object
ipgeo(ip = "8.8.8.8", api_key = api_key,
fields = "location")
# Nested field
ipgeo(ip = "8.8.8.8", api_key = api_key,
fields = "location.city")
# Multiple fields
ipgeo(ip = "8.8.8.8", api_key = api_key,
fields = c("location", "location.city"))
# Comma-separated string
ipgeo(ip = "8.8.8.8", api_key = api_key,
fields = "location,security")The excludes parameter removes specific objects or nested fields from the
default response. It supports entire objects and dot notation for nested fields.
# Exclude entire object
ipgeo(ip = "8.8.8.8", api_key = api_key,
excludes = "security")
# Exclude nested field
ipgeo(ip = "8.8.8.8", api_key = api_key,
excludes = "location.zipcode")
# Multiple exclusions
ipgeo(ip = "8.8.8.8", api_key = api_key,
excludes = c("location.zipcode", "continent_code"))The include parameter requests additional modules not part of the default
response. Supported module names are "hostname", "security",
"dma_code", "abuse", "geo_accuracy", and "user_agent".
Note: Dot notation is not supported for
include. Comma-separated values and character vectors are accepted. Availability depends on your API plan.
ipgeo(
ip = "8.8.8.8",
api_key = api_key,
include = "security"
)
ipgeo(
ip = "8.8.8.8",
api_key = api_key,
include = c("security", "hostname")
)fields, excludes, and include can be used together:
ipgeo(
ip = "8.8.8.8",
api_key = api_key,
fields = c("location", "location.city"),
excludes = "location.zipcode",
include = "security"
)The function validates parameter types, normalizes vectors to comma-separated strings, fails gracefully if the API is unreachable, and returns parsed JSON as an R list.
| Argument | Type | Description |
|---|---|---|
ip |
character | IP address to look up |
api_key |
character | Your IPGeolocation.io API key |
fields |
character | Optional object names or nested fields to return |
excludes |
character | Optional object names or nested fields to exclude |
include |
character | Optional additional modules: hostname, security, dma_code, abuse, geo_accuracy, user_agent (dot notation not supported; comma-separated values accepted) |
Returns: A list parsed from the JSON API response.
MIT