python通過淘寶IP資料庫查詢地區

技術小牛人發表於2017-11-05

API 的地址是 http://ip.taobao.com/service/getIpInfo.php?ip=你需要查詢的IP


{“code”:0,”data”:{“country”:”u4e2du56fd”,”country_id”:”CN”,”area”:”u897fu5357″,”area_id”:”500000″,”region”:”u56dbu5dddu7701″,”region_id”:”510000″,”city”:”u7ef5u9633u5e02″,”city_id”:”510700″,”county”:””,”county_id”:”-1″,”isp”:”u8054u901a”,”isp_id”:”100026″,”ip”:”221.10.97.147″}}


上面就是我查詢我現在所在的外網地址得出來的

(json格式的)國家 、省(自治區或直轄市)、市(縣)、運營商

其中code的值的含義為,0:成功,1:失敗。

country:國家

area:地區

region:所在省份

city:所在城市

county:縣

isp:運營商


然後 得到的資料是經過 unicode 編碼的 然後獲取實際的資料需要解碼

python 解碼方面可以參考這裡

http://luchanghong.com/python/2012/07/06/python-encoding-with-unicode-and-gbk-and-utf8.html


然後就根據需要提取內容就好了 寫個例子


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import urllib
import json
def ipInfo(ipaddress):
    url = `http://ip.taobao.com/service/getIpInfo.php?ip=` + ipaddress
    page = urllib.urlopen(url)
    data = page.read()
    jsondata = json.loads(data)
    if jsondata[u`code`== 0:
        print `所在國家:` + jsondata[u`data`][u`country`].encode(`utf-8`)
        print `所在地區:` + jsondata[u`data`][u`area`].encode(`utf-8`)
        print `所在省份:` + jsondata[u`data`][u`region`].encode(`utf-8`)
        print `所在城市:` + jsondata[u`data`][u`city`].encode(`utf-8`)
        print `所用運營商:` + jsondata[u`data`][u`isp`].encode(`utf-8`)
    else:
        print `查詢失敗 請檢查IP 後再說`

只是簡單的獲取資料 解析資料而已

本文轉自    拖鞋崽      51CTO部落格,原文連結:http://blog.51cto.com/1992mrwang/1206673


相關文章