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 Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
Dec 25 Python
使用Python判断质数(素数)的简单方法讲解
May 05 Python
Python语言描述KNN算法与Kd树
Dec 13 Python
python tensorflow基于cnn实现手写数字识别
Jan 01 Python
python 同时运行多个程序的实例
Jan 07 Python
python实现浪漫的烟花秀
Jan 30 Python
python对象转字典的两种实现方式示例
Nov 07 Python
pandas 对group进行聚合的例子
Dec 27 Python
Pytorch Tensor的统计属性实例讲解
Dec 30 Python
Python实现的扫码工具居然这么好用!
Jun 07 Python
Python Matplotlib绘制条形图的全过程
Oct 24 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 下载保存文件保存到本地的两种实现方法
2013/08/12 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
php获取客户端IP及URL的方法示例
2017/02/03 PHP
Prototype使用指南之string.js
2007/01/10 Javascript
新鲜出炉的js tips提示效果
2011/04/03 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
jquery中封装函数传递当前元素的方法示例
2017/05/05 jQuery
详解Vue.use自定义自己的全局组件
2017/06/14 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
2018/08/25 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
Python Xml文件添加字节属性的方法
2018/03/31 Python
python读取ini配置文件过程示范
2019/12/23 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
matplotlib绘制正余弦曲线图的实现
2021/02/22 Python
飞利浦法国官网:Philips法国
2019/07/10 全球购物
大学生应聘自荐信
2013/10/11 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
2015年学生会个人工作总结
2015/04/09 职场文书
公司聚餐通知
2015/04/22 职场文书
办公室禁烟通知
2015/04/23 职场文书
Python道路车道线检测的实现
2021/06/27 Python
Python中time与datetime模块使用方法详解
2022/03/31 Python
Redis keys命令的具体使用
2022/06/05 Redis