如何在不使用API​​的情况下按IP地址查找位置

时间:2013-07-19 06:19:30

标签: c# javascript asp.net

在JavaScript或C#中是否有办法通过IP地址查找用户的位置而无需查询第三方的API?

3 个答案:

答案 0 :(得分:3)

您认为它如何运作,您如何解决这个问题?你有一个包含所有信息的数据库吗?没有权利。我们必须在网上使用一些服务并获取位置。有很多简单的API提供这些服务。

试试这个,我主要使用它,结果可以是JSON或XML或CSV

<强> freegeoip.net

http://freegeoip.net/{format}/{ip}
http://freegeoip.net/json/216.239.51.99

所以,为此你会得到像

这样的结果
{
    "ip": "216.239.51.99",
    "country_code": "US",
    "country_name": "United States",
    "region_code": "CA",
    "region_name": "California",
    "city": "Mountain View",
    "zipcode": "94043",
    "latitude": 37.4192,
    "longitude": -122.0574,
    "metro_code": "807",
    "areacode": "650"
}

您可以非常轻松地解析此问题。如果您对此有任何其他疑问,请与我们联系。

答案 1 :(得分:2)

  

在javascript或C#类中有没有办法做这个plz

不,没有。这就是为什么人们用IP地址构建整个数据库并为其提供API的原因。

答案 2 :(得分:1)

我无法察觉。

要了解您需要了解IP地理位置如何工作的原因:IP地址不一定附带位置信息。要找出IP地址所属的国家/地区,您必须在庞大的IP地址及其位置数据库中进行查找。

IP地理定位提供商从各种来源汇集这些数据库。维基百科上的Geolocation条目提供了更详细的解释,其中信息实际来自何处。这些提供商从许多来源收集信息,匹配信息并从中创建数据库。这是一个有点复杂的过程,这就是为什么您经常被要求访问这些数据库的原因。

理论上,您可以创建或下载自己的数据库,然后查询。但是,这并不可行。您将不得不花费大量资源来创建自己的数据库。下载并不容易,因为地理定位提供商不希望将他们的数据库作为他们的商业模式收费。还要记住,您需要维护数据库,因为IP地址经常被重新分配。