To detect if an IP address is a VPN using IP2Location.io in R, you can use the IP2Location.io API to retrieve geolocation and related data.
install.packages(c("httr", "jsonlite"))
library(httr)
library(jsonlite)
ip = "8.8.8.8"
key = "YOUR_API_KEY"
res <- GET("https://api.ip2location.io/",
query = list(format = "json", ip = ip, key = key))
if (res$status_code == 200) {
raw <- rawToChar(res$content)
data <- fromJSON(raw)
if (!is.null(data$proxy)) {
if (data$proxy$is_vpn) {
print(paste0("The IP ", ip, " is a VPN."))
} else {
print(paste0("The IP ", ip, " is NOT a VPN."))
}
} else{
print("ERROR: The is_vpn field requires a paid subscription to the Security plan.")
}
} else if ((res$status_code == 400) || (res$status_code == 401)) {
raw <- rawToChar(res$content)
data <- fromJSON(raw)
if (!is.null(data$error)) {
print(paste0("ERROR: ", data$error$error_message))
} else {
print(data)
}
} else {
print(paste0("ERROR: ", res$status_code))
}
This script will check if the specified IP address is a VPN. Make sure to replace 8.8.8.8 with the IP address you want and replace YOUR_API_KEY to your own API key.
Empower your applications with accurate IP geolocation information now.
Try It for Free