2013-07-19 50 views
2

JavaScript或C#有沒有方法通過IP地址查找用戶的位置而不查詢第三方的API?如何在不使用API​​的情況下通過IP地址查找位置

+0

爲什麼你有限制?而不使用任何API。 –

+1

有沒有簡單和免費的方法。無論如何,您需要一些數據庫來查找(例如,GeoIP http://www.maxmind.com/zh/geolocation_landing)。然後,如果您不想使用任何API,則應該設置自己的數據庫並在其中導入GeoIP數據。 –

+0

我不明白不使用API​​背後的想法是什麼? –

回答

2

有沒有辦法在JavaScript或C#類來做到這一點PLZ

沒有,沒有。這就是爲什麼人們使用IP地址構建完整數據庫併爲其提供API的原因。

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

我沒有辦法知道。

要理解爲什麼您需要了解IP地理位置的工作原理:IP地址不一定會隨附位置信息。要找出IP地址屬於哪個國家,您必須在IP地址及其位置的龐大數據庫中進行查找。

IP地理位置提供程序從各種來源組裝這些數據庫。 Wikipedia上的Geolocation條目給出了信息實際來源的更詳細的解釋。這些提供商從許多來源收集信息,匹配信息並從中創建數據庫。這是一個有點複雜的過程,這就是爲什麼你通常要負責訪問這些數據庫。

從理論上講,您可以創建或下載自己的數據庫,然後進行查詢。但是,這不是真的可行。你將不得不花費大量資源來創建自己的數據庫。下載並不容易,因爲地理定位提供商不希望通過收取訪問數據庫來爲他們的數據庫提供商業模式。另外請記住,當IP地址經常重新分配時,您需要維護數據庫。

相關問題