Python使用淘宝API查询IP归属地功能分享

 更新时间:2014年10月23日 11:40:09   投稿:junjie  
这篇文章主要介绍了Python使用淘宝API查询IP归属地功能分享,本文可以查询到国家、运营商、区域、省份、城市、县/区等,需要的朋友可以参考下

网上有很多方法能够过去到IP地址归属地的脚本,但是我发现淘宝IP地址库的信息更详细些,所以用shell写个脚本来处理日常工作中一些IP地址分析工作。

脚本首先是从http://ip.taobao.com/的数据接口获取IP地址的JSON格式的数据信息,在使用一个python脚本来把Unicode字符转换成UTF-8编码。

Shell脚本内容:

复制代码 代码如下:

#!/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地址 国家 运营商 区域 省份 城市 县/区
echo -e "\e[1;33m======================================================================\e[0m"
ipInfo;

Python脚本内容:

复制代码 代码如下:

#!/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()

将两个脚本放在一个目录下,再将需要分析的IP地址一行一个写入在list文件中,执行 shell脚本即可。

实例演示(分析最近暴力破解服务器密码的IP归属地):

复制代码 代码如下:

cat /var/log/secure | awk '/Failed/ {print $(NF-3)}' | sort -u > list
[root@MyVPS4407 ip]# ./ip.sh
IP地址                  国家    运营商  区域    省份    城市    县/区
======================================================================
114.112.69.50           中国    华南    广东省
118.244.14.49           中国    华北    北京市  北京市
122.72.120.109          中国    铁通    西北    甘肃省
1.25.202.50             中国    联通    华北    内蒙古自治区    包头市
133.242.17.113          日本
134.255.243.11          德国
145.253.72.3            德国
188.116.55.211          波兰
202.103.36.43           中国    电信    华中    湖北省  武汉市
202.97.194.167          中国    联通    东北    黑龙江省        哈尔滨市
203.122.59.88           印度
210.44.159.49           中国    教育网  华东    山东省  济南市
211.232.30.253          韩国
218.248.42.131          印度
223.5.3.200             中国    阿里巴巴        华东    浙江省  杭州市
37.55.227.103           乌克兰
38.69.193.39            美国
50.97.246.147           美国
66.161.209.154          美国
66.248.201.2            加拿大

相关文章

  • linux shutdown命令详解

    linux shutdown命令详解

    Windows 系统自带一个名为Shutdown.exe的程序,可以用于关机操作(位置在Windows\System32下),一般情况下Windows系统的关机都可以通过调用程序 shutdown.exe来实现的,同时该程序也可以用于终止正在计划中的关机操作
    2017-09-09
  • Shell脚本中获取本机ip地址的3个方法

    Shell脚本中获取本机ip地址的3个方法

    这篇文章主要介绍了Shell脚本中获取本机ip地址的3个方法,本文直接给出实现代码,需要的朋友可以参考下
    2014-10-10
  • shell版Nginx日志蜘蛛爬取查看脚本

    shell版Nginx日志蜘蛛爬取查看脚本

    这篇文章主要介绍了shell版Nginx日志蜘蛛爬取查看脚本的相关资料,需要的朋友可以参考下
    2015-03-03
  • 详解Shell $*和$@之间的区别

    详解Shell $*和$@之间的区别

    这篇文章主要介绍了详解Shell $*和$@之间的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 修改Apache配置指定php配置文件php.ini的位置方法

    修改Apache配置指定php配置文件php.ini的位置方法

    下面小编就为大家带来一篇修改Apache配置指定php配置文件php.ini的位置方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Shell脚本对文件中的行、单词、字符进行迭代输出示例

    Shell脚本对文件中的行、单词、字符进行迭代输出示例

    这篇文章主要介绍了Shell脚本对文件中的行、单词、字符进行迭代输出示例,本文讲解了迭代文件中的每一行、迭代一行中的每一个单词、迭代一个单词中的每一个字符等内容,需要的朋友可以参考下
    2014-11-11
  • 一个简单的linux命令 cp

    一个简单的linux命令 cp

    这篇文章主要介绍了一个简单的linux命令cp,cp命令用来复制文件或者目录,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • Linux C线程池简单实现实例

    Linux C线程池简单实现实例

    这篇文章主要介绍了Linux C线程池简单实现实例的相关资料,需要的朋友可以参考下
    2017-07-07
  • shell脚本自动安装jdk的方法示例

    shell脚本自动安装jdk的方法示例

    这篇文章主要介绍了shell脚本自动安装jdk的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 浅析Linux系统下安装wetty和使用说明

    浅析Linux系统下安装wetty和使用说明

    本篇文章主要给大家介绍linux系统下安装wetty和使用说明,以及linux tty命令学习总结,感兴趣的朋友跟着小编一起学习吧
    2015-10-10

最新评论