分析nginx ip地址来源

简介:

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

1
2
3
4
5
6
7
8
9
10
11
12
def  getIP():
     =  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、模块使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@monitor 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的方式导出数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@monitor python] # cat queryadd.py 
#!/usr/bin/env python
#coding=utf-8 
import  json 
def  GetAddress():
     pvdic = {}
     =  open ( '/tmp/output.txt' , 'r' )
     =  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、生成效果:

1
2
[root@monitor 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 ]]










本文转自 小罗ge11 51CTO博客,原文链接:http://blog.51cto.com/xiaoluoge/1653123,如需转载请自行联系原作者
目录
相关文章
|
29天前
|
Ubuntu 应用服务中间件 数据库
Nginx配置:阻止非国内IP地址访问的设置方法
此外,出于用户隐私和法律合规性的考虑,应慎重考虑阻止特定国家或地区IP地址的决策。在某些情况下,这可能被视为歧视性或违反当地法律。
51 2
|
2月前
|
应用服务中间件 Linux nginx
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
|
2月前
|
应用服务中间件 持续交付 nginx
[nginx]借助nginx实现自动获取本机IP
[nginx]借助nginx实现自动获取本机IP
|
2月前
|
应用服务中间件 Shell nginx
shell分析nginx日志的一些指令
shell分析nginx日志的一些指令
|
2月前
|
应用服务中间件 nginx 数据安全/隐私保护
nginx配置源IP访问控制
nginx配置源IP访问控制
|
3月前
|
应用服务中间件 Linux 开发工具
Nginx14---目录结构分析,查看Ngnix访问日志命令的写法​
Nginx14---目录结构分析,查看Ngnix访问日志命令的写法​
|
3月前
|
应用服务中间件 开发工具 nginx
Ngnix09目录结构分析,使用tree工具可以Ngnix目录中以一个树的方式呈现出来,yum install -y tree,tail -f nginx/logs/access.log
Ngnix09目录结构分析,使用tree工具可以Ngnix目录中以一个树的方式呈现出来,yum install -y tree,tail -f nginx/logs/access.log
|
应用服务中间件 nginx 网络协议
|
应用服务中间件 nginx 网络协议
|
16天前
|
缓存 前端开发 JavaScript
终极 Nginx 配置指南(全网最详细)
本文详细介绍了Nginx配置文件`nginx.conf`的基本结构及其优化方法。首先通过删除注释简化了原始配置,使其更易理解。接着,文章将`nginx.conf`分为全局块、events块和http块三部分进行详细解析,帮助读者更好地掌握其功能与配置。此外,还介绍了如何通过简单修改实现网站上线,并提供了Nginx的优化技巧,包括解决前端History模式下的404问题、配置反向代理、开启gzip压缩、设置维护页面、在同一IP上部署多个网站以及实现动静分离等。最后,附上了Nginx的基础命令,如安装、启动、重启和关闭等操作,方便读者实践应用。
206 84
终极 Nginx 配置指南(全网最详细)