自定义Nginx日志格式获取IP地址的省市份信息
注:图片如果损坏,点击文章链接:
https://www.toutiao.com/i6806672112477012493/
在linux中nginx日志产生的格式是下面的配置:
$remote_addr^A$msec^A$http_host^A$request_uri
然后准备好了获取的日志数据

创建工程编写代码:
创建执行类和方法

基本结构

创建一个日期处理的工具类

完成简单的IP和时间存放

判断请求参数,利用?判断

如果请求的日志信息拿不到 也没有必要获取其它信息了

将请求信息获取的处理方法

网上有很多纯真IP地址数据库qqwry.dat解析的内容,我们利用下获取IP对应的地址
首先准备一个类IPSeeker(网上很多,可以直接下载下来)

再编写一个类,继承IPSeeker,编写一个单例

准备一个区域信息的类,注意生成get/set方法

QqwryIp添加解析IP地址的方法

完成基本结构

默认设置

处理省份信息

单独省份的处理信息,先示例一部分,简单处理

内蒙古

新疆、广西等地

天津、北京等地

香港、澳门等地和其它地区

可以补起数据处理的部分了handlerLogText方法

编写主方法,读取文件的内容主要部分

执行结果,这样就获取了文本中的日志信息

自定义Nginx日志格式获取IP地址的省市份信息的更多相关文章
- php 获取ip地址的5种方法,插入用户登录日志实例
php 获取ip地址的5种方法,插入用户登录日志实例,推荐使用第二种方法 <?php //方法1: $ip = $_SERVER["REMOTE_ADDR"]; echo $ ...
- ELK 之三:Kibana 使用与Tomcat、Nginx 日志格式处理
一:kibana安装: kibana主要是搜索elasticsearch的数据,并进行数据可视化的展现,新版使用nodejs. 1.下载地址: https://www.elastic.co/downl ...
- Nginx 日志格式配置介绍
Nginx日志格式配置介绍 by:授客 QQ:1033553122 测试环境 CentOS 6.5-x86_64 nginx-1.10.0 配置例子 log_format main '$ ...
- Nginx日志格式以及相关配置
一.Nginx日志格式以及参数说明log_format main '$remote_addr - $remote_user [$time_local] "$request" ' ...
- 运维技巧-Nginx日志格式
1.说一说 当你安装完nginx,输出的格式是比较乱的,这样我们就需要自己去定义一下,自己看着舒服的格式. 2.Nginx日志字段 $remote_addr 记录客户端IP,但她的值不是客户端提供的, ...
- Nginx - 日志格式及输出
1. 前言 在 Nginx 服务器中,如果想对日志输出进行控制还是很容易的.Nginx 服务器提供了一个 HttpLogModule 模块,可以通过它来设置日志的输出格式. 2. HttpLogMod ...
- js获取IP地址方法总结_转
js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...
- php获取ip地址所在的地理位置的实现
1,通过腾讯或者新浪提供的接口来获取(新浪和腾讯类似) <?php function getIPLocation($queryIP){ $url = 'http://ip.qq ...
- thinkphp获取ip地址及位置信息
ThinkPHP\Common\funcitons.php下有一个get_client_ip()能够获取ip地址 但是有时候不够准确 找到了下面一段来 function get_client_ip($ ...
随机推荐
- Redis持久化 aof和rdb的原理配置
目录 一.介绍 二.RDB持久化(全量写入) rdb原理 rdb模式 rdb触发情况 rdb优势和劣势 rdb文件配置 rdb命令配置 rdb数据恢复 三.AOF持久化(增量写入) aof原理 aof ...
- pipeline脚本管理
目录 一.代码仓库 二.远程拉取 一.代码仓库 1.使用gitlab做pipeline脚本的存储,新建一个仓库 2.新建文件,把代码放进去 脚本名可以按照规律填写,环境_应用名_类型,例如:test_ ...
- iphone4 与iphone5适配
转:http://www.cnblogs.com/ygm900/archive/2013/05/24/3098015.html iphone4/4s 应用程序升级适配 iphone5 的方法有很多,而 ...
- [V&N2020 公开赛]babybabypwn
写在开头,感谢"影二つ"师傅的指点. 题目的做法思路网上一搜一大把,这篇博客主要记录一下这道题用pwntools写srop的时候,为什么需要省略前面8个字节. 在看题目之前,先来学 ...
- 对Spring IOC容器的思考
最近在看Spring5的视频教学,学到了IOC容器这块,对IOC有些浅薄的理解,分享一二:有错误之处,还请大佬指出 IOC(Inversion of Control 控制反转),是面向对象编程中的一种 ...
- Python基础入门(7)- Python异常处理机制
1.初识异常 1.1.什么是异常与异常处理 异常就是错误 异常会导致程序崩溃并停止运行 能监控并捕获异常,将异常部位的程序进行修理使得程序继续正常运行 1.2.异常的语法 1 # coding:utf ...
- IO多路复用之select总结(转载)
1.基本概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程.IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/ ...
- 移动端滚动方案:better-scroll
BetterScroll 是什么 BetterScroll 是一款重点解决移动端(已支持 PC)各种滚动场景需求的插件.它的核心是借鉴的 iscroll (opens new window) 的实现, ...
- js控制滚动条在最底部位置
window.scrollTo(0, document.body.scrollHeight) 如果需要始终保持在最底部,可以循环调用该方法 如果是div的 /*滚动条到地步*/ function to ...
- C++实现二叉搜索书(参考算法导论)
1 #include <iostream> 2 using namespace std; 3 4 struct node 5 { 6 // 数据域 7 int data; 8 9 // 左 ...