Python使用淘寶API查詢IP歸屬地功能分享
網(wǎng)上有很多方法能夠過(guò)去到IP地址歸屬地的腳本,但是我發(fā)現(xiàn)淘寶IP地址庫(kù)的信息更詳細(xì)些,所以用shell寫(xiě)個(gè)腳本來(lái)處理日常工作中一些IP地址分析工作。
腳本首先是從http://ip.taobao.com/的數(shù)據(jù)接口獲取IP地址的JSON格式的數(shù)據(jù)信息,在使用一個(gè)python腳本來(lái)把Unicode字符轉(zhuǎn)換成UTF-8編碼。
Shell腳本內(nèi)容:
#!/bin/bash
ipInfo() {
for i in `cat list`
do
TransCoding="/usr/bin/python TransCoding.py"
JsonDate="curl -s http://ip.taobao.com/service/getIpInfo.php?ip=$i"
country=`$JsonDate | sed 's/,/\n/g' | $TransCoding | tr -d "{}\"" | awk -F ":" 'NR==2{print $3}'
area=`$JsonDate | sed 's/,/\n/g' | $TransCoding | tr -d "{}\"" | awk -F ":" 'NR==4{print $2}'
region=`$JsonDate | sed 's/,/\n/g' | $TransCoding | tr -d "{}\"" | awk -F ":" 'NR==6{print $2}'
city=`$JsonDate | sed 's/,/\n/g' | $TransCoding | tr -d "{}\"" | awk -F ":" 'NR==8{print $2}'
county=`$JsonDate | sed 's/,/\n/g' | $TransCoding | tr -d "{}\"" | awk -F ":" 'NR==10{print $2}'
isp=`$JsonDate | sed 's/,/\n/g' | $TransCoding | tr -d "{}\"" | awk -F ":" 'NR==12{print $2}'
printf "%-18s\t%-8s\t%-8s\t%-8s\t%-8s\t%-8s\t%-8s\n" $i $country $isp $area $region $city $county
done
}
printf "%-18s\t%-8s\t%-8s\t%-8s\t%-8s\t%-8s\t%-8s\n" IP地址 國(guó)家 運(yùn)營(yíng)商 區(qū)域 省份 城市 縣/區(qū)
echo -e "\e[1;33m======================================================================\e[0m"
ipInfo;
Python腳本內(nèi)容:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
import sys
def main():
for line in sys.stdin:
sys.stdout.write(re.sub(r'\\u\w{4}',
lambda e: unichr(int(e.group(0)[2:], 16)).encode('utf-8'),
line))
if __name__ == '__main__':
main()
將兩個(gè)腳本放在一個(gè)目錄下,再將需要分析的IP地址一行一個(gè)寫(xiě)入在list文件中,執(zhí)行 shell腳本即可。
實(shí)例演示(分析最近暴力破解服務(wù)器密碼的IP歸屬地):
cat /var/log/secure | awk '/Failed/ {print $(NF-3)}' | sort -u > list
[root@MyVPS4407 ip]# ./ip.sh
IP地址 國(guó)家 運(yùn)營(yíng)商 區(qū)域 省份 城市 縣/區(qū)
======================================================================
114.112.69.50 中國(guó) 華南 廣東省
118.244.14.49 中國(guó) 華北 北京市 北京市
122.72.120.109 中國(guó) 鐵通 西北 甘肅省
1.25.202.50 中國(guó) 聯(lián)通 華北 內(nèi)蒙古自治區(qū) 包頭市
133.242.17.113 日本
134.255.243.11 德國(guó)
145.253.72.3 德國(guó)
188.116.55.211 波蘭
202.103.36.43 中國(guó) 電信 華中 湖北省 武漢市
202.97.194.167 中國(guó) 聯(lián)通 東北 黑龍江省 哈爾濱市
203.122.59.88 印度
210.44.159.49 中國(guó) 教育網(wǎng) 華東 山東省 濟(jì)南市
211.232.30.253 韓國(guó)
218.248.42.131 印度
223.5.3.200 中國(guó) 阿里巴巴 華東 浙江省 杭州市
37.55.227.103 烏克蘭
38.69.193.39 美國(guó)
50.97.246.147 美國(guó)
66.161.209.154 美國(guó)
66.248.201.2 加拿大
- python使用在線API查詢IP對(duì)應(yīng)的地理位置信息實(shí)例
- python中mediapipe庫(kù)踩過(guò)的坑實(shí)戰(zhàn)記錄
- Python+OpenCV手勢(shì)檢測(cè)與識(shí)別Mediapipe基礎(chǔ)篇
- python使用mediapiple+opencv識(shí)別視頻人臉的實(shí)現(xiàn)
- ?Python使用Mediapipe對(duì)圖像進(jìn)行手部地標(biāo)檢測(cè)
- Python+MediaPipe實(shí)現(xiàn)檢測(cè)人臉功能詳解
- python使用IP歸屬地查詢API追蹤網(wǎng)絡(luò)活動(dòng)
相關(guān)文章
linux shell在while中用read從鍵盤(pán)輸入的實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇linux shell在while中用read從鍵盤(pán)輸入的實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
Linux下/var/run/目錄下的pid文件詳解及pid文件作用
linux系統(tǒng)中/var/run/目錄下的*.pid文件是一個(gè)文本文件,其內(nèi)容只有一行,即某個(gè)進(jìn)程的PID。這篇文章主要介紹了Linux下/var/run/目錄下的pid文件詳解及pid文件作用,需要的朋友可以參考下2018-04-04
Linux Shell 自動(dòng)交互功能實(shí)現(xiàn)
本文主要介紹了Linux Shell 自動(dòng)交互功能實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
linux?shell輸出換行簡(jiǎn)單實(shí)例
這篇文章主要給大家介紹了關(guān)于linux?shell輸出換行的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-02-02
定時(shí)導(dǎo)出mysql本地?cái)?shù)據(jù)替換遠(yuǎn)程數(shù)據(jù)庫(kù)數(shù)據(jù)腳本分享
這篇文章主要介紹了mysql每天定時(shí)倒出本地?cái)?shù)據(jù),替換遠(yuǎn)程數(shù)據(jù)庫(kù)數(shù)據(jù)的腳本,需要的朋友可以參考下2014-03-03
Linux echo命令的使用及三種實(shí)現(xiàn)方式
這篇文章主要介紹了Linux echo命令的使用及三種實(shí)現(xiàn)方式,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05
Shell根據(jù)web日志計(jì)算平均連接時(shí)間功能
這篇文章主要介紹了Shell根據(jù)web日志計(jì)算平均連接時(shí)間功能,本文給出了原代碼和自己修改后的代碼,需要的朋友可以參考下2014-12-12

