python-获取nginx访问日志IP,返回对应IP所属地区python脚本

1.脚本介绍


  • 我的个人博客: http://halo.axz99.cn(博客中有更多的知识分享,希望大家都能够来增加我的人气!)        

       这个脚本是我用python书写的一个可以获取Linux系统任意nginx日志中的IP列的信息,并将能够输出该IP所属的地区省、市信息,用到了request、os、sys等模块,并以函数传参形式调用API接口进行实现,如果想知道谁访问你网站访问最多,而且还想知道是哪个地区的话,那么用我这脚本就对了,他可以帮你解决需求问题,做事杠杠滴,各位道友,还有若是想去分析error错误日志呢,也可以使用我这个,只要日志格式第1列是IP地址,那就可以使用这个脚本。

2.效果演示


  • 我以一个网站的nginx访问日志来实验

3.源码获取


import requests
import subprocess
import sys

#Author:王晓政
#QQ:3415278922
#Date:2024-7-13

#获取输入的第一个值
ip_dir = sys.argv[1]
filelog = ip_dir


#指定nginx日志文件路径
#ip_dir = '/var/log/nginx/web20-access.log.1'

# 将IP格式化
def ip_formatting(ips):
    # 创建一个空列表来存储IP地址
    ip_addresses = []

    # IP地址列表的原始文本
    ips_text = f"""
    {ips}
    """

    # 使用strip移除首尾空白字符,然后按行分割文本
    ip_lines = ips_text.strip().split('\n')

    # 遍历每一行并将其添加到列表中
    for ip in ip_lines:
        ip_addresses.append(ip)

    # 返回结果列表
    return ip_addresses


# 获取IP地址文件
def get_ipaddr(dir):
    # 执行cat命令
    cat_proc = subprocess.Popen(['cat', f'{dir}'], stdout=subprocess.PIPE)

    # 管道输出给awk命令,打印每行的第一个字段
    awk1_proc = subprocess.Popen(['awk', '{print $1}'], stdin=cat_proc.stdout, stdout=subprocess.PIPE)
    cat_proc.stdout.close()
 
   展示部分代码..............................................

4.作者想说


  • 我的个人博客: http://halo.axz99.cn(博客中有更多的知识分享,希望大家都能够来增加我的人气!)   

       我是一个IT行业人员,接触过编程,前端学习前端三剑客、ajax、Nodejs、Vue框架等技术,可以自己搭建出基础的小网站,同时运维方面我也会很多,比如LNMP架构、shell编程、Docker容器、CI/CD,zabbix和Prometheus监控,kafka等MQ产品,也用过一些阿里云的产品,比如OSS、ECS、SLB、WAF防火墙、rds for mysql等,要告诉各位道友,其实学习会让你的身价变高,加油吧大家,努力学习新的技术,更加方便我们工作,让我们一起变得更加优秀!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值