--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#!/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
|
运维路上有你有我也有他,机油互相帮助,才能互相进步!!!