Python实现从log日志中提取ip的方法【正则提取】


Posted in Python onMarch 31, 2018

本文实例讲述了Python实现从log日志中提取ip的方法。分享给大家供大家参考,具体如下:

log日志内容如下(myjob.log):

124.90.53.68 - - [05/Feb/2018 11:37:07] "GET /favicon.ico HTTP/1.1" 404 -
61.148.245.145 - - [05/Feb/2018 12:37:44] "GET / HTTP/1.1" 200 -
61.148.245.145 - - [05/Feb/2018 12:37:44] "GET /apple-touch-icon-120x120-precomposed.png HTTP/1.1" 404 -
61.148.245.145 - - [05/Feb/2018 12:37:44] "GET /apple-touch-icon-120x120.png HTTP/1.1" 404 -
61.148.245.145 - - [05/Feb/2018 12:37:45] "GET /apple-touch-icon-precomposed.png HTTP/1.1" 404 -
61.148.245.145 - - [05/Feb/2018 12:37:45] "GET /apple-touch-icon.png HTTP/1.1" 404 -
61.148.245.145 - - [05/Feb/2018 12:37:45] "GET /static/favicon.ico HTTP/1.1" 200 -
101.226.33.218 - - [05/Feb/2018 13:07:39] "GET / HTTP/1.1" 200 -
101.226.33.219 - - [05/Feb/2018 13:09:46] "GET / HTTP/1.1" 200 -
101.226.33.219 - - [05/Feb/2018 13:09:46] "GET /static/youkulogo.png HTTP/1.1" 200 -
101.226.33.219 - - [05/Feb/2018 13:09:46] "GET /static/iqiyi.png HTTP/1.1" 200 -
101.226.33.219 - - [05/Feb/2018 13:09:46] "GET /static/qqlogo.png HTTP/1.1" 200 -
124.202.223.62 - - [05/Feb/2018 14:29:45] "GET / HTTP/1.1" 200 -
124.202.223.62 - - [05/Feb/2018 14:29:47] "GET /static/youkulogo.png HTTP/1.1" 200 -
124.202.223.62 - - [05/Feb/2018 14:29:48] "GET /static/qqlogo.png HTTP/1.1" 200 -
124.202.223.62 - - [05/Feb/2018 14:29:48] "GET /static/iqiyi.png HTTP/1.1" 200 -
124.202.223.62 - - [05/Feb/2018 14:29:49] "GET /static/favicon.ico HTTP/1.1" 200 -

提取ip:

# encoding: utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import pandas as pd
import re
import time
import requests
time1=time.time()
######函数功能:能够提取ip地址,并且去重################
def read_file(input_file_name,output_file_name):
  _fLog = open(input_file_name)
  sep = '\n'
  ip_list=[]
  for each in _fLog:
    ip=re.findall(r'(?<![\.\d])(?:\d{1,3}\.){3}\d{1,3}(?![\.\d])',str(each),re.S)
    ip_list.append(ip[0])
  # 列表去重:通过set方法进行处理
  ids = list(set(ip_list))
  print "共解析ip个数:%s "% len(ids)
  ##写出数据到本地
  # 设置输出文件路径
  out = open(output_file_name, "a")
  # out.write("ip" + sep)
  for each in ids:
    print each
    out.write(each + sep)
  ##关闭连接
  out.close()
  _fLog.close()
  print "ip提取完毕~~"
####主函数################
if __name__ == '__main__':
  input_file_name = "C:/myjob.log"
  output_file_name = "c:/myjob.txt"
  read_file(input_file_name, output_file_name)
  time2 = time.time()
  print u'总共耗时:' + str(time2 - time1) + 's'

运行结果:

共解析ip个数:5
61.148.245.145
124.90.53.68
124.202.223.62
101.226.33.219
101.226.33.218
ip提取完毕~~
总共耗时:0.000999927520752s
Process finished with exit code 0

Python 相关文章推荐
Win7上搭建Cocos2d-x 3.1.1开发环境
Jul 03 Python
Python统计列表中的重复项出现的次数的方法
Aug 18 Python
Python文件去除注释的方法
May 25 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
Jan 29 Python
Python中反射和描述器总结
Sep 23 Python
自学python的建议和周期预算
Jan 30 Python
Python一行代码实现快速排序的方法
Apr 30 Python
在Pycharm中使用GitHub的方法步骤
Jun 13 Python
python3使用腾讯企业邮箱发送邮件的实例
Jun 28 Python
Python any()函数的使用方法
Oct 28 Python
Django实现基于类的分页功能
Oct 31 Python
浅谈Python协程
Jun 17 Python
Python+OpenCV实现车牌字符分割和识别
Mar 31 #Python
python Opencv将图片转为字符画
Feb 19 #Python
python实现批量按比例缩放图片效果
Mar 30 #Python
python放大图片和画方格实现算法
Mar 30 #Python
python实现数独游戏 java简单实现数独游戏
Mar 30 #Python
简单实现python数独游戏
Mar 30 #Python
Python使用MD5加密算法对字符串进行加密操作示例
Mar 30 #Python
You might like
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
浅谈php安全性需要注意的几点事项
2014/07/17 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
2014/04/17 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
jQuery动态添加
2016/04/07 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
Python入门篇之函数
2014/10/20 Python
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
详解Python核心编程中的浅拷贝与深拷贝
2018/01/07 Python
Python序列类型的打包和解包实例
2019/12/21 Python
python super函数使用方法详解
2020/02/14 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
J2EE面试题
2016/03/14 面试题
自荐书范文范例
2014/02/13 职场文书
会议接待欢迎标语
2014/10/08 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
好好学习保证书
2015/02/26 职场文书
小学班主任心得体会
2016/01/07 职场文书
怎样写工作总结啊!
2019/06/18 职场文书
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android
mysql数据库隔离级别详解
2022/06/16 MySQL