我正在处理某个问题,我需要将其映射到某个国家/地区。即使我能够可靠地回答问题"这个特定网址是否与美国相关?"这应该足够了。
我很高兴有假阴性,但绝不是假阳性。
目前我正在考虑以下方法。
之前有没有人解决过这类问题?
答案 0 :(得分:0)
您可以使用http://dev.maxmind.com/geoip/geoip2/geolite2/,但在使用此地址访问GeoIP数据库之前,您需要从您的URL域获取IP地址。
针对不同语言的GeoIP数据集有很多接口:http://dev.maxmind.com/geoip/geoip2/downloadable/#MaxMind_APIs
在这里查看一个示例NodeJS项目:
答案 1 :(得分:0)
您还可以试用免费的userinfo.io API或javascript库,并从多个地理定位数据库的合并中获取数据,以获得更高的准确性。
<script type="text/javascript" href="//cdnjs.cloudflare.com/ajax/libs/userinfo/1.0.0/userinfo.min.js"></script>
<script type="text/javascript">
UserInfo.getInfo(function(data) {
// the "data" object contains the info
}, function(err) {
// the "err" object contains useful information in case of an error
});
</script>
响应如下:
{
request_date: "2014-09-18T04:11:25.154Z",
ip_address: "192.77.237.95",
position: {
latitude: 37.7758,
longitude: -122.4128,
accuracy: 3 // This is the accuracy radius, in kilometers
},
continent: {
name: "North America",
code: "NA",
},
country: {
name: "United States",
code: "US",
},
city: {
name: "San Francisco",
code: "94103"
}
}