這篇文章主要介紹計(jì)算機(jī)中根據(jù)ip地址能查到具體地址,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷、企業(yè)網(wǎng)站建設(shè),賣友情鏈接,廣告投放平臺(tái)為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計(jì)到用戶體驗(yàn)提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
根據(jù)ip地址是能查到具體地址的;ip地址是根據(jù)每臺(tái)電腦網(wǎng)絡(luò)連接點(diǎn)而得到的一個(gè)“身份證”,查詢ip地址可以讓我們有效的知道該電腦在哪個(gè)位置。
ip地址是根據(jù)每臺(tái)電腦網(wǎng)絡(luò)連接點(diǎn)而得到的一個(gè)“身份證”,查詢ip地址可以讓我們有效的知道該電腦在哪個(gè)位置。
根據(jù)IP地址查詢具體地理位置的方法
百度地圖有根據(jù)IP查詢地址的API
http://lbsyun.baidu.com/index.php?title=webapi/ip-api
1、根據(jù)百度地圖API直接IP查地址
API中說,請(qǐng)求如下兩個(gè)地址可以根據(jù)IP獲取具體地址:

請(qǐng)求參數(shù)如下:

若我們請(qǐng)求ip為192.168.1.1的話,那么請(qǐng)求地址構(gòu)造如下:
http://api.map.baidu.com/location/ip?ak=XXX(自己申請(qǐng)的API TOKEN)&ip=192.168.1.1
這里采取Python為實(shí)驗(yàn)語言,代碼及注釋如下:
from urllib import request import json # ak is bound with ip baidu_api_ak = "ZX9QCmwzzItzRO5ssD7GNgEwD4OQduWR" ip_addr = "xxx.xxx.xxx.xxx" # Request url url = "http://api.map.baidu.com/location/ip?ak=" + baidu_api_ak + "&ip=" + ip_addr req = request.Request(url) res = request.urlopen(req) res = res.read() # Bytes to str n = res.decode(encoding='utf-8') # str to json s = json.loads(n) t = json.dumps(s, ensure_ascii=False) print(n) print(t)
上述代碼大概意思是,請(qǐng)求url讀取返回的流,并將其轉(zhuǎn)化為json格式,結(jié)果如下圖所示:

注意到上圖中,只能看到,四川省成都市這一很大范圍的,而其中的"street"等字段查詢出來是空的。也就是說,只能查詢到一個(gè)大概的范圍。
PS:返回來的值中也有經(jīng)緯度,但是根據(jù)原文檔來看,這些經(jīng)緯度是IP所在城市中心點(diǎn)的經(jīng)緯度。
2、先查經(jīng)緯度,根據(jù)經(jīng)緯度查地址。
根據(jù)IP查經(jīng)緯度,百度地圖沒有給出API,但是墻外還是有資源。這里不貼,自己去找吧。。。
假如得到經(jīng)緯度后,可以通過經(jīng)緯度+百度地圖API查詢到詳細(xì)地址。
百度地圖的全球逆地址編碼API如下:
http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroad
如下圖,假設(shè)我們已經(jīng)獲取到經(jīng)緯度了,按照API上的規(guī)則來說,location參數(shù)后面的就是經(jīng)緯度。根據(jù)經(jīng)緯度,我們能查到詳細(xì)地址。

實(shí)驗(yàn)代碼及注釋如下:
#! /usr/bin/env python
# coding=utf-8
from urllib import request
import json
# ak is bound with ip
baidu_api_ak = "ZX9QCmwzzItzRO5ssD7GNgEwD4OQduWR"
url = "http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location=30.6667,104.0670&output=json&pois=1&ak=" + baidu_api_ak
req = request.Request(url)
res = request.urlopen(req)
res = res.read()
n = res.decode(encoding='utf-8')
# The result format is renderReverse&&renderReverse(json str). so....
n = n[len("renderReverse&&renderReverse") + 1:-1]
st = json.loads(n)
# st's structure
# result: XXXX
# status: XXXX
result = st["result"]
for i in result:
print(i, result[i])結(jié)果如下:

這里的地址已經(jīng)很詳細(xì)了,只不過沒有詳細(xì)的解析,看起來有點(diǎn)亂,要想獲得指定的位置信息,可以參考API。
不過,通常這樣查詢的結(jié)果都不是對(duì)的,可能因?yàn)槭沁\(yùn)營(yíng)商對(duì)用戶保密,查出來的地址可能是運(yùn)營(yíng)商服務(wù)器的地址,具體是什么未做深究。
以上是“計(jì)算機(jī)中根據(jù)ip地址能查到具體地址”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站欄目:計(jì)算機(jī)中根據(jù)ip地址能查到具體地址
本文URL:http://chinadenli.net/article32/gsjipc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、搜索引擎優(yōu)化、網(wǎng)站內(nèi)鏈、定制開發(fā)、營(yíng)銷型網(wǎng)站建設(shè)、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)