2012-07-20 75 views

回答

2

IP地址本身沒有位置信息。然而,存在具有該映射的許多數據庫/服務。

請參閱this blog entry瞭解多種不同選項。有許多API和數據庫可以連接到這裏,並且您可以選擇在本地下載這些信息以避免遠程查找。

1

所以正如其他人正確地指出了IP地址不包含任何關於這個位置的元數據「的。您需要依靠第三方獲取這些信息,自己檢索這些信息,或者不用它。用Java編寫庫來抓取這些信息應該是可能的。

1
ipAddress = request.getRemoteAddr(); 
    GeoLocation gl = new GeoLocation(); 
    gl.GetGeoLocationByIP(ipAddress); 

String country = gl.Country; 

refer

1

來自IP獲取位置的地址,你必須購買的IP數據庫 ,他們將定期更新IP表。

但是,如果你願意,你可以從請求頭獲得位置的詳細信息,即城市,地區,國家,經度,緯度。

它只適用於GAE用戶。

欲瞭解更多詳情,請通過 GAE ReleaseNotes

public static HashMap<String, Object> getLocationDetails(HttpServletRequest request) 
{ 
    HashMap<String, Object> locationMap = null; 
    String country = "",city="",region="",latitude="",longitude="",temp="",state="",title="",address="",zip=""; 
    boolean primary = true; 
    try 
    { 
     locationMap = new HashMap<String, Object>(); 
     country  = request.getHeader("X-AppEngine-Country"); 
     region  = request.getHeader("X-AppEngine-Region"); 
     city  = request.getHeader("X-AppEngine-City"); 
     temp  = request.getHeader("X-AppEngine-CityLatLong"); 
     latitude = (temp.split(","))[0]; 
     longitude = (temp.split(","))[1]; 
     log.info("country>>"+country+"region>>"+region+"city>>"+city+"temp>>"+temp+"latitude>>"+latitude+"longitude>>"+longitude); 

     locationMap.put("city"  , city); 
     locationMap.put("state"  , region); 
     locationMap.put("country" , country); 
     locationMap.put("latitude" , latitude); 
     locationMap.put("longitude" , longitude); 
     log.info("locationMap==>"+locationMap); 
    }catch (Exception e) 
    { 
     log.log(Level.SEVERE,"Exception while getting location"+e.getMessage(),e); 
    } 
    return locationMap; 
} 
0

你可以使用我的API來查找這些信息,https://ipinfo.io。如果你沒有在一個IP地址,通過它會給你的細節爲你自己,或者你可以通過IP地址來獲取詳細信息一個:

$ curl ipinfo.io/24.6.61.239 
{ 
    "ip": "24.6.61.239", 
    "hostname": "c-24-6-61-239.hsd1.ca.comcast.net", 
    "city": "Mountain View", 
    "region": "California", 
    "country": "US", 
    "loc": "37.3845,-122.0881", 
    "org": "AS7922 Comcast Cable Communications, LLC", 
    "postal": "94040" 
} 

詳情請參閱https://ipinfo.io/developers

相關問題