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 相关文章推荐
python3.3实现乘法表示例
Feb 07 Python
python正则表达式re模块详细介绍
May 29 Python
Python实现Linux的find命令实例分享
Jun 04 Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 Python
微信公众号token验证失败解决方案
Jul 22 Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 Python
Python帮你识破双11的套路
Nov 11 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
Feb 21 Python
Python第三方包之DingDingBot钉钉机器人
Apr 09 Python
Python3基于print打印带颜色字符串
Jul 06 Python
浅析Python 多行匹配模式
Jul 24 Python
Python descriptor(描述符)的实现
Nov 15 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中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
php中explode函数用法分析
2014/11/15 PHP
jQuery+php简单实现全选删除的方法
2016/11/28 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
PHP如何根据文件头检测文件类型实例代码
2018/10/14 PHP
php服务器的系统详解
2019/10/12 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
jquery tools 系列 scrollable学习
2009/09/06 Javascript
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
2017/05/17 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
Vue 过滤器filters及基本用法
2017/12/26 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
2020/07/29 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
wxPython中listbox用法实例详解
2015/06/01 Python
Python设计模式编程中解释器模式的简单程序示例分享
2016/03/02 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
python如何查看安装了的模块
2020/06/23 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
文职个人求职信范文
2013/09/23 职场文书
四年级数学教学反思
2014/02/02 职场文书
体操比赛口号
2014/06/10 职场文书
物流专业专科生职业生涯规划书
2014/09/14 职场文书
决心书格式范文
2015/09/23 职场文书
2019各种承诺书范文
2019/06/24 职场文书
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL