В прошлом я использовал API, называемый стек IP (ipstack.com).
Пример: фрейм данных «d», который содержит столбец IP-адресов с именем «ipAddress»
for(i in 1:nrow(d)){
#get data from API and save the text to variable 'str'
lookupPath <- paste("http://api.ipstack.com/", d$ipAddress[i], "?access_key=INSERT YOUR API KEY HERE&format=1", sep = "")
str <- readLines(lookupPath)
#save all the data to a file
f <- file(paste(i, ".txt", sep = ""))
writeLines(str,f)
close(f)
#save data to main data frame 'd' as well:
d$ipCountry[i]<-str[7]
print(paste("Successfully saved ip #:", i))
}
В этом примере я был специально указан для местоположения Country каждого IP, которыйпоявляется в строке 7 данных, возвращаемых API (отсюда и str [7])
. Этот API позволяет бесплатно искать 10000 адресов в месяц, что было достаточно для моих целей.