python 实现 ip138 作用
2014-01-24 11:29
447 查看
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#!/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 上一个一个查,效率甚低,这个小脚本可以让你的查询速度倍增,而且不离开命令行;
测试:
使用帮助看:
运维路上有你有我也有他,机油互相帮助,才能互相进步!!!
#!/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 上一个一个查,效率甚低,这个小脚本可以让你的查询速度倍增,而且不离开命令行;
测试:
使用帮助看:
相关文章推荐
- Python模块常用的几种安装方式
- python模块 ,paramiko的安装和使用
- Python模块学习 ---- logging 日志记录(一)
- python模块学习 ---- smtplib 邮件发送
- python读写excel文件
- python创建目录
- python 写入excel两种方法
- webdriver(python)学习笔记一
- 用Python将数据写入已存在Excel
- 2013流行Python项目汇总
- python爬虫实践之模拟登录
- mac python 安装
- 用Python和Pygame写游戏-从入门到精通(14)
- Python的函数嵌套的使用方法
- 使用cx_freeze把python打包exe示例
- python中的__name__ == "__main__"
- python内置函数map/reduce/filter
- windows下安装ipython
- Python抓取网页图片
- python lambda 表达式(Python: Lambda Functions)