#!/bin/env python2
# -*- coding: utf-8 -*-
import sys
import re
datetime='14/Apr/2017'
## ## ipadd = []
## ## dtime =[]
## append command
## ## ipadd.append(ia)
ipadd = {}
datime = {}
## ['', '14', 'Apr', '2017', '09', '33', '21']
## ['', '14', 'Apr', '2017', '09', '33', '21']
## ['', '14', 'Apr', '2017', '09', '33', '31']
def datc(dd):
##
## 特定の文字列から日時に変換
##
## d = dd.split("[/:")
## d= re.split(r'[|\/|:|\.',dd)
d= re.split(r'\s|\[|\/|:',dd)
# print d
rd = d[3]+"/"+d[2]+"/"+d[1]+" "+d[4]+":"+d[5]
return rd
def runlog():
with open('./access_log','r') as flogs :
for l in flogs:
if ( re.search( datetime, l) ):
log = l.split()
ia = log[0] ## ipaddress
dt = log[3] ## date time
hc = log[8] ## http code
##
if ( hc != "200" ):
continue
## IP アドレス
##
if ( ia not in ipadd ):
ipadd[ia] = 1
else :
ipadd[ia] += 1
##
## 時間帯
##
dt2 = datc(dt)
if ( dt2 not in datime ):
datime[dt2] = 1
else :
datime[dt2] += 1
def reports():
##
## IPアドレスの印刷
##
## print ipadd
c = len( ipadd )
ik = ipadd.keys()
ik.sort( key = ipadd.__getitem__, reverse = True)
for i in range(c) :
## print i, ipadd(i)
print ik[i],
print ipadd[ik[i]]
# print i
##
## 時間帯
##
## print datime
c = len( datime )
id = datime.keys()
id.sort( key = datime.__getitem__, reverse = True)
for i in range(c) :
## print i, datime(i)
print id[i],
print datime[id[i]]
# print i
if __name__ == '__main__':
runlog()
reports()