你的IP精準(zhǔn)定位 實(shí)戰(zhàn)實(shí)用小技巧

甲方工作的朋友可能會(huì)遇到這樣的問題晨汹,服務(wù)器或者系統(tǒng)經(jīng)常被掃描豹储,通過IP地址我們只能查到某一個(gè)市級(jí)城市,如下圖:

當(dāng)我們想具體到街道甚至門牌號(hào)淘这,該怎么辦剥扣?巩剖??

偶然間發(fā)現(xiàn)百度地圖有高精度IP定位API的接口钠怯,通過該接口我們可以通過IP地址定位到具體的地理位置佳魔,甚至能精確到門牌號(hào)及周圍的標(biāo)志性建筑。該接口的說明地址為:http://lbsyun.baidu.com/index.php?title=webapi/high-acc-ip

若想要使用該接口進(jìn)行查詢晦炊,必須先申請(qǐng)一個(gè)密鑰(AK)鞠鲜,如下圖:

申請(qǐng)過程就不進(jìn)行說明了。API的接口參數(shù)說明和返回參數(shù)說明也不過多的介紹刽锤,大家可以看一看镊尺。因?yàn)槲蚁敕祷鼗A(chǔ)定位結(jié)果+地址信息+POI信息,所以我將請(qǐng)求參數(shù)extensions的值設(shè)置為3并思。一次完整的http請(qǐng)求為:http://api.map.baidu.com/highacciploc/v1?qcip=183.55.116.90&qterm=pc&ak=“你的 密鑰(AK)”&coord=bd09ll&extensions=3 庐氮。請(qǐng)求結(jié)果如下圖:

結(jié)果為json格式數(shù)據(jù):

{"content":{"location":{"lat":23.06588,"lng":115.404586},"locid":"925a2a9e3ac5be1cf003afd23c344ab3","radius":30,"confidence":0.5,"address_component":{"country":"中國","province":"廣東省","city":"汕尾市","district":"海豐縣","street":"新平路","street_number":"","admin_area_code":441521},"formatted_address":"廣東省汕尾市海豐縣新平路","business":"公平"},"result":{"error":161,"loc_time":"2016-10-19 21:53:28"}}

我們需要的字段為:content字段里面的formatted_address。當(dāng)然我們也可以將location里面的經(jīng)度和緯度提取出來從而顯示在地圖上面宋彼。有的IP地址會(huì)返回pois數(shù)據(jù)弄砍,比如:183.55.116.95。返回參數(shù)如下:

{"content":{"location":{"lat":23.082367,"lng":115.466276},"locid":"3fb96555906fff3100ff21119142ccd5","radius":30,"confidence":1.0,"address_component":{"country":"中國","province":"廣東省","city":"汕尾市","district":"海豐縣","street":"S335","street_number":"","admin_area_code":441521},"formatted_address":"廣東省汕尾市海豐縣S335","pois":[{"name":"雙墩村","address":"汕尾市海豐縣三三五省道","tag":"行政地標(biāo);村莊","location":{"lat":23.082422,"lng":115.465348},"uid":"18010998377147269119"},{"name":"雙墩村委會(huì)","address":"汕尾市海豐縣","tag":"政府機(jī)構(gòu);各級(jí)政府","location":{"lat":23.083394,"lng":115.465914},"uid":"17661602237861855231"},{"name":"長(zhǎng)聯(lián)塘尾","address":"汕尾市海豐縣","tag":"行政地標(biāo);村莊","location":{"lat":23.081358,"lng":115.467315},"uid":"18010998372852301823"},{"name":"雙墩小學(xué)","address":"335省道附近","tag":"教育培訓(xùn);小學(xué)","location":{"lat":23.083336,"lng":115.465061},"uid":"17661601958688980991"},{"name":"大溪頭","address":"汕尾市海豐縣","tag":"行政地標(biāo);村莊","location":{"lat":23.090326,"lng":115.465995},"uid":"18010998368557334527"}],"location_description":"雙墩村東104米"},"result":{"error":161,"loc_time":"2016-10-19 22:03:31"}}

此時(shí)我們可以把pois字段也提取出來输涕,值得注意的是pois為數(shù)組音婶,我們可以遍歷數(shù)組數(shù)據(jù)。

通過上面的分析莱坎,用python簡(jiǎn)單的寫了一個(gè)腳本衣式,具體代碼如下:

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

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

# author:allen權(quán)

import sys

import urllib2

import json

def get_ip_information(ip):

url='http://api.map.baidu.com/highacciploc/v1?qcip='+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"]

print formatted_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地址定位失敗i苁病2晡浴!'

if __name__ == '__main__':

get_ip_information('183.55.116.95')

大家把腳本上面的參數(shù)ak值改為自己的密鑰即可乃正。測(cè)試截圖如下:

再放一張自己IP的測(cè)試截圖:

確實(shí)精確到了路名住册,很準(zhǔn)確,雖然沒有pois的信息瓮具。

最后聲明一下荧飞,成功率:綜合定位成功率 65% ,精度:90% 誤差 80m 以內(nèi)名党;95% 誤差 350m叹阔。這是官方給出的數(shù)據(jù),所說有一定的概率是查詢失敗的4谩6薄!蒋歌!

*本文原創(chuàng)作者:allen權(quán)帅掘,轉(zhuǎn)載須注明來自FreeBuf.COM

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市堂油,隨后出現(xiàn)的幾起案子修档,更是在濱河造成了極大的恐慌,老刑警劉巖府框,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吱窝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡迫靖,警方通過查閱死者的電腦和手機(jī)院峡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來系宜,“玉大人照激,你說我怎么就攤上這事№锬粒” “怎么了俩垃?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)汰寓。 經(jīng)常有香客問我口柳,道長(zhǎng),這世上最難降的妖魔是什么有滑? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任跃闹,我火速辦了婚禮,結(jié)果婚禮上毛好,老公的妹妹穿的比我還像新娘望艺。我一直安慰自己,他們只是感情好睛榄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布荣茫。 她就那樣靜靜地躺著,像睡著了一般场靴。 火紅的嫁衣襯著肌膚如雪啡莉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天旨剥,我揣著相機(jī)與錄音咧欣,去河邊找鬼。 笑死轨帜,一個(gè)胖子當(dāng)著我的面吹牛魄咕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蚌父,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哮兰,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼毛萌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起喝滞,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤阁将,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后右遭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體做盅,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年窘哈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吹榴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡滚婉,死狀恐怖图筹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情让腹,我是刑警寧澤婿斥,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站哨鸭,受9級(jí)特大地震影響民宿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜像鸡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一活鹰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧只估,春花似錦志群、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吁脱,卻和暖如春桑涎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兼贡。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工攻冷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人遍希。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓等曼,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子禁谦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容