python 实现 ip138 作用

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

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

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






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值