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开发常用的一些开源Package分享
Feb 14 Python
python实现文件路径和url相互转换的方法
Jul 06 Python
Django中处理出错页面的方法
Jul 15 Python
Python实现新浪博客备份的方法
Apr 27 Python
Python验证文件是否可读写代码分享
Dec 11 Python
详解python单元测试框架unittest
Jul 02 Python
简单了解django缓存方式及配置
Jul 19 Python
Python CVXOPT模块安装及使用解析
Aug 01 Python
Python实现语音识别和语音合成功能
Sep 20 Python
pytorch: Parameter 的数据结构实例
Dec 31 Python
Python实现文字pdf转换图片pdf效果
Apr 03 Python
Anaconda安装pytorch和paddle的方法步骤
Apr 03 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购物车实现方法
2015/01/03 PHP
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
php + nginx项目中的权限详解
2017/05/23 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
js打造数组转json函数
2015/01/14 Javascript
jQuery实现左右切换焦点图
2015/04/03 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
关于webpack2和模块打包的新手指南(小结)
2017/08/07 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
Mac 安装 nodejs方法(图文详细步骤)
2017/10/30 NodeJs
vue框架搭建之axios使用教程
2018/07/11 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
ES6基础之展开语法(Spread syntax)
2019/02/21 Javascript
JavaScript内置对象之Array的使用小结
2020/05/12 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
[48:12]Secret vs Optic Supermajor 胜者组 BO3 第三场 6.4
2018/06/05 DOTA
Python实现提取XML内容并保存到Excel中的方法
2018/09/01 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
python中wx模块的具体使用方法
2020/05/15 Python
使用Python画了一棵圣诞树的实例代码
2020/11/27 Python
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
客户服务经理岗位职责
2014/01/29 职场文书
2015年元旦活动总结
2014/05/09 职场文书
起诉书范文
2015/05/20 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js