如何通過IP位址進行精準定位

2021-07-24 07:08:32 字數 3164 閱讀 9507

在甲方工作的朋友可能會遇到這樣的問題,伺服器或者系統經常被掃瞄,通過ip位址我們只能查到某乙個市級城市,如下圖:

當我們想具體到街道甚至門牌號,該怎麼辦???

若想要使用該介面進行查詢,必須先申請乙個金鑰(ak),如下圖:

申請過程就不進行說明了。api的介面引數說明和返回引數說明也不過多的介紹,大家可以看一看。因為我想返回基礎定位結果+位址資訊+poi資訊,所以我將請求引數extensions的值設定為3。一次完整的http請求為:你的 金鑰(ak)」&coord=bd09ll&extensions=3 。請求結果如下圖:

結果為json格式資料:

,"locid":"925a2a9e3ac5be1cf003afd23c344ab3","radius":30,"confidence":0.5,"address_component":,"formatted_address":"廣東省汕尾市海豐縣新平路","business":"公平"},"result":}
我們需要的字段為:content欄位裡面的formatted_address。當然我們也可以將location裡面的經度和緯度提取出來從而顯示在地圖上面。有的ip位址會返回pois資料,比如:183.55.116.95。返回引數如下:

,"locid":"3fb96555906fff3100ff21119142ccd5","radius":30,"confidence":1.0,
"address_component":,
"formatted_address":"廣東省汕尾市海豐縣s335","pois":[,
"uid":"18010998377147269119"},,"uid":"17661602237861855231"},
,"uid":"18010998372852301823"},
,"uid":"17661601958688980991"},
,"uid":"18010998368557334527"}],
"location_description":"雙墩村東104公尺"},"result":}
此時我們可以把pois欄位也提取出來,值得注意的是pois為陣列,我們可以遍歷陣列資料。

通過上面的分析,用python簡單的寫了乙個指令碼,具體**如下:

# -*- coding:utf-8 -*-

# author:allen權

import

sysimport

urllib2

import

json

def

get_ip_information

(ip):

url=

''+ip+

'&qterm=pc&ak='你的金鑰(ak)'&coord=bd09ll&extensions=3'

poiss=''

request = urllib2.request(url)

page = urllib2.urlopen(request

, timeout=10

)data_json = page.read()

data_dic = json.loads(data_json)

if

(data_dic.has_key(

"content"

)):content=data_dic[

"content"

]

address_component=content[

"address_component"

]formatted_address=content[

"formatted_address"

]print

"該ip位址的具體位置為:"

print

address_component[

"country"

]

printformatted_address

if

(content.has_key(

"pois"

)):print

"該ip位址附近poi資訊如下:"

pois = content[

"pois"

]for

index

in

range

(len

(pois)):

pois_name = pois[index][

"name"

]pois_address = pois[index][

"address"

]print

pois_name

, pois_address

else

:print

'ip位址定位失敗!!!'

if

__name__ ==

'__main__'

:

get_ip_information(

'183.55.116.95'

)

大家把指令碼上面的引數ak值改為自己的金鑰即可。測試截圖如下:

再放一張自己ip的測試截圖:

確實精確到了路名,很準確,雖然沒有pois的資訊。

最後宣告一下,成功率:綜合定位成功率 65%  ,精度:90% 誤差 80m 以內;95% 誤差 350m。這是官方給出的資料,所說有一定的概率是查詢失敗的!!!!

通過IP位址進行精準定位

可能會遇到這樣的問題,伺服器或者系統經常被掃瞄,通過ip位址我們只能查到某乙個市級城市,如下圖 當我們想具體到街道甚至門牌號,該怎麼辦?若想要使用該介面進行查詢,必須先申請乙個金鑰 ak 如下圖 申請過程就不進行說明了。api的介面引數說明和返回引數說明也不過多的介紹,大家可以看一看。因為我想返回基...

ip位址高精準定位

ip資料庫包含全球43億全量ipv4與 2 128全量ipv6,資料庫版本分為高精準 公安版 高精準 商業版 區縣級 城市級和ipv6共5個版本。ip資料庫主要解決的痛點為網際網路廣告精準投放 內容精準推薦 使用者位置畫像 重點企業辦公網路資產普查,網路攻擊溯源 取證 嫌疑人地理位置定位 伺服器優化...

QT通過IP位址定位位址

通過ip位址定位位址,是要通過查詢資料庫,如果自己做乙個這樣的資料庫工作量就比較大,所以在網上找了乙個查詢ip位址的 通過呼叫這個 查詢來實現,但是這個有一定的弊端,如果沒有網路或者這個 不可用時,就無法查詢。具體 如下 qeventloop loop qnetworkaccessmanager m...