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生成指定尺寸缩略图的示例
May 07 Python
使用python编写脚本获取手机当前应用apk的信息
Jul 21 Python
python处理html转义字符的方法详解
Jul 01 Python
Python实现求解括号匹配问题的方法
Apr 17 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
python tkinter图形界面代码统计工具
Sep 18 Python
python中利用matplotlib读取灰度图的例子
Dec 07 Python
Python如何基于smtplib发不同格式的邮件
Dec 30 Python
django从后台返回html代码的实例
Mar 11 Python
python打开音乐文件的实例方法
Jul 21 Python
Django rest framework分页接口实现原理解析
Aug 21 Python
Flask-SocketIO服务端安装及使用代码示例
Nov 26 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闭包函数详解
2016/02/13 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
2013/04/23 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
JavaScript遍历求解数独问题的主要思路小结
2016/06/12 Javascript
js实现交通灯效果
2017/01/13 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
JavaScript代码调试方法实例小结
2019/01/05 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
[02:05]DOTA2完美大师赛趣味视频之看我表演
2017/11/18 DOTA
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
python函数返回多个值的示例方法
2013/12/04 Python
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
用Python逐行分析文件方法
2019/01/28 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
基于python实现删除指定文件类型
2020/07/21 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
学雷锋演讲稿
2014/03/04 职场文书
2014年五四青年节演讲稿范文
2014/04/22 职场文书
作文评语大全
2014/04/23 职场文书
监察建议书格式
2014/05/19 职场文书
交通工程专业推荐信
2014/09/06 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书
MySQL之DML语言
2021/04/05 MySQL
Mysql 性能监控及调优
2021/04/06 MySQL
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技