如何用ip來換取用戶所在的城市,今天在開發項目的時候就需要定位用戶所在城市,然后不同城市展示不同的商品信息。
剛開始百度一下找了半天,很多給出來的api接口都失效了,最后找到了百度的api,相信百度的api不會掉線,索性就用百度的api,但是對每天調用的額度有限制,如果企業賬戶認證了的話額度都很高,足夠使用了。
如果需要更詳細的獲取用戶的經緯度,或者獲取用戶的省市區,參考這篇文章:
百度文檔:http://lbsyun.baidu.com/index.php?title=webapi/ip-api
api調用地址:
http://api.map.baidu.com/location/ip?ak=您的AK&ip=您的IP&coor=bd09ll //HTTP協議 https://api.map.baidu.com/location/ip?ak=您的AK&ip=您的IP&coor=bd09ll //HTTPS協議
請求參數:
參數名稱 | 參數含義 | 類型 | 備注 |
---|---|---|---|
用戶上網的IP地址,請求中如果不出現或為空,會針對發來請求的IP進行定位。 如您需要通過IPv6來獲取位置信息,請提交工單申請。 | |||
開發者密鑰,可在API控制臺申請獲得 | |||
若用戶所用AK的校驗方式為SN校驗時該參數必填(什么是SN校驗?)。其他AK校驗方式的可不填寫 | |||
設置返回位置信息中,經緯度的坐標類型,分別如下: coor不出現、或為空:百度墨卡托坐標,即百度米制坐標 coor = bd09ll:百度經緯度坐標,在國測局坐標基礎之上二次加密而來 coor = gcj02:國測局02坐標,在原始GPS坐標基礎上,按照國家測繪行業統一要求,加密后的坐標 注意:百度地圖的坐標類型為bd09ll,如果結合百度地圖使用,請注意坐標選擇 |
返回結果,json格式:
結果字段 | 字段含義 | 類型 | ||
address | 詳細地址信息 | string | ||
content | address | 簡要地址信息 | string | |
address_detail | city | 城市 | string | |
city_code | 百度城市代碼 | string | ||
province | 省份 | string | ||
point | x | 當前城市中心點經度 | string | |
y | 當前城市中心點緯度 | string | ||
status | 結果狀態返回碼,請參考本章節后面的介紹 | string |
接口返回成功示例:
{ address: "CN|北京|北京|None|CHINANET|1|None", #詳細地址信息 content: #結構信息 { address: "北京市", #簡要地址信息 address_detail: #結構化地址信息 { city: "北京市", #城市 city_code: 131, #百度城市代碼 province: "北京市", #省份 }, point: #當前城市中心點 { x: "116.39564504", #當前城市中心點經度 y: "39.92998578" #當前城市中心點緯度 } }, status: 0 #結果狀態返回碼 }