The examples in this article describe how many times each IP appears in the Python statistics log. Share to everyone for your reference. Specific as follows:
This script can be used for a variety of log types, I test MDaemon's all log file size of about 1.23G, analysis time 2-3 minutes
The code is very simple, very suitable for operation and maintenance personnel, there is a shortage of places please point out oh
#-*-coding:utf-8-*-import re,timedef mail_log (file_path): Global Count log=open (File_path, ' R ') c=r ' \. '. Join ([R ' \d{1,3} ']*4) find=re.compile (C) count={} for i in log: for IP in Find.findall (i): count[ Ip]=count.get (ip,1) +1if __name__ = = ' __main__ ': print Time.clock () num=0 mail_log (R ' e:\ Mdaemon-20110329-all.log ') R=count.items () for i in R: if i[1]>0: #提取出现次数大于0的IP Print I Num+=1 PRINT ' compliant number:%s time consuming (%s) '% (Num,time.clock ())
The output results are as follows:
(' 206.220.200.250 ', 8) (' 66.40.52.37 ', 10) (' 66.40.52.36 ', 5) (' 207.115.11.41 ', 4) (' 96.47.193.25 ', 9) (' 96.47.193.24 ', 5) (' 96.47.193.23 ', 17) (' 72.32.181.92 ', 5) (' 67.76.103.168 ', 10) (' 64.34.161.218 ', 5) (' 209.151.96.3 ', 7) (' 61.135.168.0 ', 15) (' 199.81.128.37 ', 2) (' 199.81.128.36 ', 2) (' 199.81.128.38 ', 2) (' 198.45.19.170 ', 16) (' 12.236.15.9 ', 4) (' 66.96.142.52 ', 51) (' 66.96.142.51 ', 55) (' 66.96.142.50 ', 62) (' 64.18.5.13 ', 1553) (' 69.39.47.14 ', 9) (' 64.18.5.11 ', 1557) (' 64.18.5.10 ', 2752) (' 210.72.13.102 ', 4) (' 64.118.108.196 ', 4) (' 66.60.192.44 ', 26) (' 112.90.194.8 ', 4) (' 198.49.244.245 ', 5) (' 216.183.174.227 ', 5) (' 195.245.230.131 ', 5) (' 211.115.13.27 ', 5) (' 222.247.123.217 ', 3) (' 218.213.85.210 ', 2) (' 201.236.205.96 ', 3) (' 209.85.161.136 ', 2) (' 173.165.120.188 ', 5) (' 50.22.89.39 ', 7) (' 219.129.20.168 ', 3) (' 24.106.197.167 ', 5) (' 207.190.225.69 ', 4) (' 156.3.32.236 ', 5) (' 209.92.157.161 ', 5) (' 216.153.192.200 ', 5) (' 76.77.158.130 ', 3) (' 12.166.4.221 ', 5) (' 66.46.182.96 ', 4) (' 80.252.97.102 ', 4) (' 66.46.182.94 ', 5) (' 66.46.182.95 ', 4) (' 124.14.5.3 ', 3) (' 202.85.139.0 ', 5) (' 207.173.160.17 ', 15 ') (' 143.101.0.21 ', 5 ') (' 65.75.75.59 ', 9) (' 77.88.21.89 ', 53 ) (' 216.128.11.30 ', 44)
Hopefully this article will help you with Python programming.