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中的装饰器详解
Apr 13 Python
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
Windows下python2.7.8安装图文教程
May 26 Python
Python 40行代码实现人脸识别功能
Apr 02 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
Sep 13 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 Python
Python使用os.listdir和os.walk获取文件路径
May 21 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
Python如何批量生成和调用变量
Nov 21 Python
Python基于execjs运行js过程解析
Nov 27 Python
使用Pytorch训练two-head网络的操作
May 28 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
提问的智慧
2006/10/09 PHP
php ios推送(代码)
2013/07/01 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
destoon实现调用图文新闻的方法
2014/08/21 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
解析window.open的使用方法总结
2013/06/19 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
JavaScript设计模式之装饰者模式介绍
2014/12/28 Javascript
jQuery获得子元素个数的方法
2015/04/14 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
vue.js语法及常用指令
2017/10/29 Javascript
Vue项目数据动态过滤实践及实现思路
2018/09/11 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
Vue 禁用浏览器的前进后退操作
2020/09/04 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
Python程序中的观察者模式结构编写示例
2016/05/27 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
python实现暗通道去雾算法的示例
2020/09/27 Python
HTML5实现动画效果的方式汇总
2016/02/29 HTML / CSS
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
计算机专业毕业生的自我评价
2013/11/18 职场文书
校车司机安全责任书
2015/05/11 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
cypress测试本地web应用
2022/06/01 Javascript