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中的自定义函数学习笔记
Sep 23 Python
Python实现批量转换文件编码的方法
Jul 28 Python
利用Python中的pandas库对cdn日志进行分析详解
Mar 07 Python
Python使用剪切板的方法
Jun 06 Python
python urllib爬取百度云连接的实例代码
Jun 19 Python
python实现教务管理系统
Mar 12 Python
解决python写入mysql中datetime类型遇到的问题
Jun 21 Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 Python
python增加图像对比度的方法
Jul 12 Python
python科学计算之narray对象用法
Nov 25 Python
Python telnet登陆功能实现代码
Apr 16 Python
python 监控服务器是否有人远程登录(详细思路+代码)
Dec 18 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匹配UTF-8中文的正则表达式
2015/05/13 PHP
javascript的字符串按引用复制和传递,按值来比较介绍与应用
2012/12/28 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
原生js实现ajax方法(超简单)
2016/09/20 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
Ajax实现不刷新取最新商品
2017/03/01 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
bootstrap table插件的分页与checkbox使用详解
2017/07/23 Javascript
vue实现通讯录功能
2018/07/14 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
JS实现图片切换特效
2019/12/23 Javascript
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
Python中os.path用法分析
2015/01/15 Python
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
使用Python实现BT种子和磁力链接的相互转换
2015/11/09 Python
Python类属性的延迟计算
2016/10/22 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
微信公众号token验证失败解决方案
2019/07/22 Python
关于python3中setup.py小概念解析
2019/08/22 Python
使用python实现kNN分类算法
2019/10/16 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
python批量生成条形码的示例
2020/10/10 Python
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
秘鲁购物网站:Linio秘鲁
2017/04/07 全球购物
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
销售人员求职的自我评价分享
2014/03/15 职场文书
学习型党组织建设经验材料
2014/05/26 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
简历自我评价模板
2015/03/11 职场文书
校园开放日新闻稿
2015/07/17 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js
Python机器学习之基于Pytorch实现猫狗分类
2021/06/08 Python
MySQL约束超详解
2021/09/04 MySQL