有时网站日志(access log)数据中会有当前这次访问的IP地址,蕴含的信息其实是当前访客的地理位置or电信服务商位置。我们知道在现实生活中,推荐或者促销的一个重要维度实际上是地理位置。这跟羽绒服&加湿器在南方滞销而在北方就会畅销,制冷空调在南方畅销而在北方滞销是一个道理。因此如果可以实现从IP到Location的转换,就能可以用IP来一定程度上模拟出当前客户的地理位置。下面是国外网站上的一个API接口,实现了这种转换 http://www.datasciencetoolkit.org/ip2coordinates/125.39.132.33
以下是根据这个API接口包装的R function可以批量实现上述转换,不过目前的速度还比较慢。
IPtoLoc <- function(x) {
URL_IP <- paste("http://www.datasciencetoolkit.org//ip2coordinates/",
x, sep = "")
api_return <- readLines(URL_IP, warn = F)
str_elements <- gsub("[^[:alnum:].]", "",
strsplit(api_return, "\"")[[1]])
return(paste(str_elements[grep("longitude", str_elements)+1],
str_elements[grep("latitude", str_elements)+1],
sep = "; "))
}
#Location of KuanDaiTong
IPtoLoc("125.39.132.33");
#"116.388298034668; 39.9289016723633"