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 相关文章推荐
linux系统使用python监测网络接口获取网络的输入输出
Jan 15 Python
Python实现检测服务器是否可以ping通的2种方法
Jan 01 Python
使用python读取txt文件的内容,并删除重复的行数方法
Apr 18 Python
python查看模块安装位置的方法
Oct 16 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
Apr 30 Python
Python如何通过Flask-Mail发送电子邮件
Jan 29 Python
在django中使用apscheduler 执行计划任务的实现方法
Feb 11 Python
解决python 找不到module的问题
Feb 12 Python
Python动态强类型解释型语言原理解析
Mar 25 Python
Python中and和or如何使用
May 28 Python
Python 程序员必须掌握的日志记录
Aug 17 Python
python 第三方库paramiko的常用方式
Feb 20 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/09/13 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
AngularJS快速入门
2015/04/02 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
深入探索VueJS Scoped CSS 实现原理
2019/09/23 Javascript
JavaScript链式调用原理与实现方法详解
2020/05/16 Javascript
vue实现移动端拖动排序
2020/08/21 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
python分割和拼接字符串
2013/11/01 Python
python中的global关键字的使用方法
2019/08/20 Python
python属于解释语言吗
2020/06/11 Python
基于matplotlib中ion()和ioff()的使用详解
2020/06/16 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
Python执行时间的几种计算方法
2020/07/31 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
存储过程和函数的区别
2013/05/28 面试题
服务标语口号
2014/07/01 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
小学英语听课心得体会
2016/01/14 职场文书
php去除deprecated的实例方法
2021/11/17 PHP