分析nginx ip地址来源

接上一篇的日志格式,我们已经筛选出了所有的IP地址、做法稍有不同。nginx正则把IP写进文件里、还是那句话数据太大我们不能写进列表里边:

def getIP():
    f = open(log,‘r‘) 
    IPdic={}
    for logline in f.readlines():
        matchs = p.match(logline)
        if matchs !=None:
            allGroups =matchs.groups()
            IP=allGroups[0] 
            f1 = open(‘/tmp/ip.txt‘,‘a‘)
            f1.write("%s\n"%(IP))
            f1.close()
    f.close()

2、调用IP模块进行,操作。可以用Pip安装。模块介绍:https://github.com/lxyu/17monip:

 pip install 17monip

3、模块使用。

[[email protected] python]# cat  query.py 
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import IP
def CheckIP():
    outip = open(‘/tmp/ip.txt‘,‘r‘)
    output = open(‘/tmp/output.txt‘,‘w‘)
    for line in outip:
        listIP=line.strip(‘\n‘)
        local = IP.find(listIP).strip(" ")
        if local != "" :
            output.write(local.encode(‘utf-8‘))
            output.write(‘\n‘)
    output.close()
    outip.close()
if __name__=="__main__":
    CheckIP()

4、在生成文件,用中文写入字典,标记出来,有个地方需要注意的是,当我们字典使用中文的适合,要用json的方式导出数据:

[[email protected] python]# cat queryadd.py 
#!/usr/bin/env python
#coding=utf-8 
import json 
def GetAddress():
    pvdic={}
    f = open(‘/tmp/output.txt‘,‘r‘)
    n = 0
    for line in f:
        add = line.split()
        address=add[1]
        pvdic[address]=pvdic.get(address,0) +1
    pvdic=sorted(pvdic.iteritems(),key=lambda c:c[1],reverse=True)
    return  json.dumps(pvdic,encoding="utf-8",ensure_ascii=False)
    f.close()
if __name__==‘__main__‘:
    print GetAddress()

5、生成效果:

[[email protected] python]# python queryadd.py 
[["广东", 86], ["河北", 81], ["河南", 78], ["山东", 43], ["浙江", 43], ["福建", 31], ["北京", 30], ["江苏", 26], ["广西", 26], ["湖南", 23], ["四川", 21], ["上海", 20], ["天津", 16], ["安徽", 14], ["黑龙江", 13], ["陕西", 11], ["湖北", 8], ["江西", 5], ["云南", 3], ["吉林", 3], ["山西", 3], ["贵州", 2], ["辽宁", 2], ["甘肃", 1], ["内蒙古", 1], ["重庆", 1], ["香港", 1]]
时间: 2024-10-27 05:36:21

分析nginx ip地址来源的相关文章

如何从apache/nginx日志分析ip的来源并写入到数据库

如题,分析首先最简单的取出ip cd /usr/local/nginx/logs awk '{print $1}'  access.log | sort  |  uniq -c  | sort -rn | head -n 50 | awk '{print $2}' > /root/list #在nginx/apache 下执行上述代码.把ip写到list列表 然后思路就是 把每个ip的来源地分析出来,我用的淘宝的ip数据库,还是不错的 #!/bin/bash ipInfo() {   for i

python分析nginx日志

问题:分析nginx日志并找出访问最多10个IP地址的来源以及次数 使用python模块IP 使用方法以及下载地址:https://pypi.python.org/pypi/17MonIP 相关python脚本: #!/usr/bin/env python #coding:utf8 #Auth: lad #date:2016-12-05 #desc:parser the nginx's log,the head of 10  import sys reload(sys) sys.setdefau

XXX全球 IP 地址库

XXX全球 IP 地址库 Bulgaria 93.123.23.1 93.123.23.2 93.123.23.3 93.123.23.4 93.123.23.5 93.123.23.6 93.123.23.7 93.123.23.8 93.123.23.9 93.123.23.10 93.123.23.11 93.123.23.12 93.123.23.13 93.123.23.14 93.123.23.15 93.123.23.16 93.123.23.17 93.123.23.18 93.

Google全球IP地址库

Google 全球 IP 地址库 Bulgaria 93.123.23.1 93.123.23.2 93.123.23.3 93.123.23.4 93.123.23.5 93.123.23.6 93.123.23.7 93.123.23.8 93.123.23.9 93.123.23.10 93.123.23.11 93.123.23.12 93.123.23.13 93.123.23.14 93.123.23.15 93.123.23.16 93.123.23.17 93.123.23.18

[转]Google 全球 IP 地址库

IP 地址来源:http://www.kookle.co.nr Bulgaria 93.123.23.1 93.123.23.2 93.123.23.3 93.123.23.4 93.123.23.5 93.123.23.6 93.123.23.7 93.123.23.8 93.123.23.9 93.123.23.10 93.123.23.11 93.123.23.12 93.123.23.13 93.123.23.14 93.123.23.15 93.123.23.16 93.123.23.

Google 全球 IP 地址库

Google 全球 IP 地址库 IP 地址来源:http://www.kookle.co.nr,共计4351个. Bulgaria 93.123.23.1 93.123.23.2 93.123.23.3 93.123.23.4 93.123.23.5 93.123.23.6 93.123.23.7 93.123.23.8 93.123.23.9 93.123.23.10 93.123.23.11 93.123.23.12 93.123.23.13 93.123.23.14 93.123.23.

C# 根据IP地址获取城市

1 using System; 2 using System.IO; 3 using System.Net; 4 using System.Text; 5 using System.Web.Script.Serialization; 6 7 namespace IpUtils 8 { 9 public class IpDetail 10 { 11 public String Ret { get; set; } 12 13 public String Start { get; set; } 14

[分享]Google 全球 IP 地址库[Google Global Cache IPs]

Google 全球 IP 地址库 IP 地址来源:http://www.kookle.co.nr,共计4351个. Bulgaria 93.123.23.1 93.123.23.2 93.123.23.3 93.123.23.4 93.123.23.5 93.123.23.6 93.123.23.7 93.123.23.8 93.123.23.9 93.123.23.10 93.123.23.11 93.123.23.12 93.123.23.13 93.123.23.14 93.123.23.

变化hosts 解决Google打开速度慢的问题 Google 全球IP地址 代理站点

Google 代替网 http://sinaapp.co http://alicdn.co http://baidustatic.co http://www.aol.com/ https://startpage.com/ 一个收费的 FQ站点 9元/月 https://ybb117.com/ 怎样不让google.com跳转到google.com.hk? 来自知乎 自从google的server搬离中国大陆后,大陆地区用户用google服务时会自己主动跳转到香港的http://google.co