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中的二叉树查找算法模块使用指南
Jul 04 Python
Python获取DLL和EXE文件版本号的方法
Mar 10 Python
Python中使用不同编码读写txt文件详解
May 28 Python
python 读写txt文件 json文件的实现方法
Oct 22 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
May 18 Python
浅谈Python Opencv中gamma变换的使用详解
Apr 02 Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 27 Python
Python 实现Image和Ndarray互相转换
Feb 19 Python
python简单的三元一次方程求解实例
Apr 02 Python
浅析Python的命名空间与作用域
Nov 25 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
Oct 16 Python
Python使用openpyxl模块处理Excel文件
Jun 05 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邮件类
2007/01/03 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
Smarty最简单实现列表奇偶变色的方法
2015/07/01 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
2012/05/30 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
node.js中的require使用详解
2014/12/15 Javascript
浅谈js和css内联外联注意事项
2016/06/30 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
JS控制只能输入数字并且最多允许小数点两位
2019/11/24 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python 12306抢火车票脚本
2018/02/07 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
python中列表的切片与修改知识点总结
2019/07/23 Python
哪些是python中web开发框架
2020/06/17 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
Python 代码调试技巧示例代码
2020/08/11 Python
专门经营化妆刷的美国彩妆品牌:Sigma Beauty
2017/09/11 全球购物
人力资源管理专业学生自我评价
2013/11/20 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
优秀学生评语大全
2014/04/25 职场文书
授权委托书样本
2014/09/25 职场文书
CSS完成视差滚动效果
2021/04/27 HTML / CSS
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python