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