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 相关文章推荐
pygame学习笔记(2):画点的三种方法和动画实例
Apr 15 Python
在Python的Flask框架下收发电子邮件的教程
Apr 21 Python
python操作redis的方法
Jul 07 Python
python 网络编程详解及简单实例
Apr 25 Python
python cx_Oracle的基础使用方法(连接和增删改查)
Nov 19 Python
机器学习10大经典算法详解
Dec 07 Python
对python 各种删除文件失败的处理方式分享
Apr 24 Python
用Python下载一个网页保存为本地的HTML文件实例
May 21 Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 Python
关于ResNeXt网络的pytorch实现
Jan 14 Python
Python定时任务框架APScheduler原理及常用代码
Oct 05 Python
利用Python如何画一颗心、小人发射爱心
Feb 21 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新闻发布系统教程
2014/05/09 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
PHP SESSION机制的理解与实例
2019/03/22 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
jquery实现弹出窗口效果的实例代码
2013/11/28 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
JS仿淘宝搜索框用户输入事件的实现
2017/06/19 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
解决vue组件销毁之后计时器继续执行的问题
2020/07/21 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
用python实现面向对像的ASP程序实例
2014/11/10 Python
python 2.7.14安装图文教程
2018/04/08 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
python爬虫基础知识点整理
2020/06/02 Python
Python调用JavaScript代码的方法
2020/10/27 Python
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
草莓网英国官网:Strawberrynet UK
2017/02/12 全球购物
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
C语言面试题
2013/05/19 面试题
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
《燕子专列》教学反思
2014/02/21 职场文书
岗位职责风险点
2014/03/12 职场文书
《秋游》教学反思
2014/04/24 职场文书
鸟的天堂导游词
2015/01/31 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
浅谈Laravel中使用Slack进行异常通知
2021/05/29 PHP
改造DE1103三步曲
2022/04/07 无线电
Docker下安装Oracle19c
2022/04/13 Servers