python 实现 ip138 作用

来源:互联网 发布:ibm大数据平台 编辑:程序博客网 时间:2024/04/29 06:22

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

#!/usr/bin/env python

# -*- coding: utf-8 -*-
# the script is used to query the location of every ip
import urllib
import json
#import sys
import re
from optparse import OptionParser
#淘宝ip库接口
url = "http://ip.taobao.com/service/getIpInfo.php?ip="
def ip_location(ip):
        data = urllib.urlopen(url + ip).read()
        datadict=json.loads(data)
#        list =[]
        for oneinfo in datadict:
                if "code" == oneinfo:
                        if datadict[oneinfo] == 0:
                            return datadict["data"]["country"] + datadict["data"]["region"] + datadict["data"]["city"].ljust(40) + datadict["data"]["isp"]
#parser = OptionParser()
parser = OptionParser(usage="%prog [-i] <ip> [-f] <filename>", version="%prog 1.0")
parser.add_option("-f", "--file",
                  dest="filename",
                  help="read IP from this file",
                  metavar="FILE")
parser.add_option("-i", "--ip",
                  action="store",
                  dest="ips",
                  help="one ip like this 192.168.1.1")
(options,args) = parser.parse_args()
if len(args) !=1:
    print parser.usage
if options.filename:
    ipadd = r'\.'.join([r'\d{1,3}']*4)
    re_ip = re.compile(ipadd)
    fd=open(options.filename)
    alllines=fd.readlines()
    fd.close()
    for line in alllines:
        match = re_ip.match(line)
        if match:
            ip = match.group( )
            print ip_location(ip)
if options.ips:

    print ip_location(options.ips)


-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

灵感来自第一篇的nginx 日志分析脚本,因为在运维的工作中免不了查看某个Ip来自什么地方,尤其怀疑服务器遭受攻击,每次总要把ip复制到ip138 上一个一个查,效率甚低,这个小脚本可以让你的查询速度倍增,而且不离开命令行;

测试:



使用帮助看

1
ip.py -h

运维路上有你有我也有他,机油互相帮助,才能互相进步!!!






0 0
原创粉丝点击