Preface: Python statistics Apache, nginx access log IP access number and sort (show Top 20). In fact, with Awk+sort and other commands can be implemented, with the awk array can also be implemented, here is just a python try.
Apache Script:
IPS = {}with open ("/root/mail_access_log-20180629") as Fh:for line in Fh:ip = Line.split ("") [0] If 6 & Lt Len (IP) <=15:ips[ip] = ips.get (IP, 0) + 1ip_num = []for ipaddr,num in Ips.items (): Ip_num.append ((IPADDR, num)) Ip_num.sort (Key=lambda x:x[1], reverse=true) for Ipaddr,num in ip_num[:20]: print (' IP address = {}, number of accesses {} '. Format (ipadd R,num))
Nginx Script:
IPS = {}with open ("/root/access.log-20180629") as Fh:for line in Fh:ip = Line.split ("") [0] if 6 < l En (IP) <=15:ips[ip] = ips.get (IP, 0) + 1ip_num = []for ipaddr,num in Ips.items (): Ip_num.append ((ipaddr,n UM)) Ip_num.sort (Key=lambda x:x[1], reverse=true) for Ipaddr,num in ip_num[:20]: print (' IP address {}, number of accesses {} '. Format (ipaddr , num))
Python statistics Apache, nginx access log IP access number and sort (show Top 20)