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 相关文章推荐
python实现去除下载电影和电视剧文件名中的多余字符的方法
Sep 23 Python
十分钟利用Python制作属于你自己的个性logo
May 07 Python
python图像处理入门(一)
Apr 04 Python
python绘制直方图和密度图的实例
Jul 08 Python
Django文件存储 自己定制存储系统解析
Aug 02 Python
python Manager 之dict KeyError问题的解决
Dec 21 Python
Python脚本导出为exe程序的方法
Mar 25 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
python os.rename实例用法详解
Dec 06 Python
Pycharm制作搞怪弹窗的实现代码
Feb 19 Python
python 爬取豆瓣网页的示例
Apr 13 Python
深入理解Pytorch微调torchvision模型
Nov 11 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 fckeditor 调用的函数
2009/06/21 PHP
使用php判断网页是否gzip压缩
2013/06/25 PHP
PHP下载远程图片并保存到本地方法总结
2016/01/22 PHP
js加强的经典分页实例
2013/03/15 Javascript
使用JavaScript修改浏览器URL地址栏的实现代码
2013/10/21 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
基于BootStrap环境写jQuery tabs插件
2016/07/12 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
JavaScript实现PC端横向轮播图
2020/02/07 Javascript
使用 Vue-TCB 快速在 Vue 应用中接入云开发的方法
2020/02/10 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
2020/12/19 Vue.js
Python中几种导入模块的方式总结
2017/04/27 Python
Python实现的生成格雷码功能示例
2018/01/24 Python
使用django-crontab实现定时任务的示例
2018/02/26 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
Python标准库使用OrderedDict类的实例讲解
2019/02/14 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
医学专业个人求职自荐信格式
2013/09/23 职场文书
分厂厂长岗位职责
2013/12/29 职场文书
杠杆的科学教学反思
2014/01/10 职场文书
村官工作鉴定评语
2014/01/27 职场文书
挖掘机司机岗位职责
2014/02/12 职场文书
2015年党员承诺书
2015/01/21 职场文书
首都博物馆观后感
2015/06/05 职场文书
2016小学新学期寄语
2015/12/04 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
python使用glob检索文件的操作
2021/05/20 Python