利用tcpdump命令统计http的GET和POST请求
1、搭建的知识库服务器, 需要统计来访者都是哪些人,因为系统不是自己开发的,看不到访问日志。所以考虑从系统层面抓取访问流量来实现。
2、通过tcpdump抓取的数据包,在wireshark中打开发现,http的请求GET动作,或者POST动作,加HOST拼接成一个url可以打开,抓取到的页面类似于这种:http://192.168.102.238:8090/pages/viewpage.action?pageId=491717
3、由于我们内部工作人员的IP地址基本固定,所以通过IP和访问的域名来判断是否是正常的打开页面请求,来记录一次来访者。
4、tcpdump命令使用如下:
[root@conence ~]# tcpdump -i em1 tcp[20:2]=0x4745 or tcp[20:2]=0x504f -c 10
| awk {'print $3'} | uniq | sort -n //偏移抓包tcp[20:2]=0x4745 为HTTP-GET 请求,0x504f为HTTP-POST请求,利用该条命令抓取HTTP的GET和POST请求。
5、简单写一个抓包的脚本,放到crontab中每秒执行
[root@coence test]# cat sic.sh
#!/bin/bash
i=1
while (($i<=5))
do
DATE0=`date +%Y%m%d%H%M`
/usr/sbin/tcpdump -i em1 tcp[20:2]=0x4745 or tcp[20:2]=0x504f -c 20 | awk {'print $3'}| uniq | sort -n |awk -F '.' '{print $1.$2.$3.$4}' | uniq >> /tmp/log/src.log_${DATE0}
*//该命令用于抓取HTTP GET/POST 请求,提取源IP,然后利用awk排序并输出,其中uniq 去除重复项,awk -F XX ,提取一个IP地址的其中一个字段 print $1.$2 目的是拆分同一个字符串(比如192.168.1.1.55611这个在awk来看是一个字符,如果需要输出其中的55611 则需要通过-F 加 "." 来拆分,然后使用 print $5 单独输出其中的一个字段),其中/usr/sbin/tcpdump 为绝对路径,如果需要把这个脚本加到crontab中来执行,就需要填写绝对路径*
sleep 10s
*//等待10s,抓包数到20个,才能确认是一次正常的页面请求,这个通过抓包测试过,打开一个页面在15-20个数据包左右*
kill `ps aux | grep tcpdump | grep -v grep | awk '{print $2}'`
//结束当前的抓包
let "i++"
done
exit
6、保存的日志还需要导出之后,通过execl来转换
7、简单的统计效果
利用tcpdump命令统计http的GET和POST请求的更多相关文章
- Android利用tcpdump和wireshark抓取网络数据包
Android利用tcpdump和wireshark抓取网络数据包 主要介绍如何利用tcpdump抓取andorid手机上网络数据请求,利用Wireshark可以清晰的查看到网络请求的各个过程包括三次 ...
- Linux tcpdump命令详解
tcpdump官网:http://www.tcpdump.org/ 转载于:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.ht ...
- Linux tcpdump 命令详解
简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的& ...
- Tcpdump命令详解
简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...
- 【原创】利用Windows系统日志统计员工每天上下班考勤时间
利用Windows系统日志统计员工每天上下班考勤时间(命令行参数为统计月份): using System; using System.Collections.Generic; using System ...
- tcpdump 命令行抓包工具
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3898248.html ...
- 结合tcpdump命令对traceroute深入分析
昨天突然被问到traceroute的原理,一时竟也说不出来,有些命令平时虽然经常在用,但实际原理确并不了解,趁这次机会就来梳理一下. traceroute:是网络诊断中,用来分析IP包经过那些路由的命 ...
- linux下tcpdump命令详解
简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...
- 利用Linux命令行进行文本按行去重并按重复次数排序
最近杂事太多,正事进展缓慢.Fighting! linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能.本文这里举例说明如何利用Linux命令行进行文本按行去重并按重 ...
随机推荐
- An invalid domain [.test.com] was specified for this cookie 原因分析
java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cookie 以上博客 ...
- (Redis基础教程之六)如何使用Redis中的List
如何在ubuntu18.04上安装和保护redis 如何连接到Redis数据库 如何管理Redis数据库和Keys 如何在Redis中管理副本和客户端 如何在Redis中管理字符串 如何在Redis中 ...
- 基于Memcached的Nginx服务器集群session共享
原料:jdk1.8,tomcat7,nginx1.16,memcached-1.2.6,Mem-Tomcat需要的jar包,基于windows7.所有的点击以下链接可下载 链接:https://pan ...
- Python的概述
官网:https://www.python.org/ 诞生:1989年底诞生,1990年V1发布,2000年V2发布,2008年V3发布(不兼容V2),2017年随着AI的崛起而流行 特点:简单.跨平 ...
- AJAX二
二.简单的dom操作 2.使用js的dom获取页面数据 由于ajax不使用form 而form具有自动收集数据的功能. 不使用form,就需要使用dom手写代码收集数据 ①获得承载数据的元素对象 &l ...
- Docker镜像下载及加速器设置
docker远程仓库配置: vim ~/.docker/daemon.json { "registry-mirrors" : [ "https://registry.do ...
- GreenPlum执行gpfdist报错:libssl.so.1.0.0: cannot open shared object file: No such file or directory
当你报这个错时,是因为你执行 ./gpfdist 时默认去找寻/usr/lib64的环境依赖,没有去找寻你gpfdist安装目录中lib的目录. 解决方法: 根据报错提示,将你gpfdist安装目录中 ...
- stm32实现DMX512协议发送与接收(非标)
最近把玩了一下485,期间也接触了dmx512通信协议,该协议主要用于各种舞台灯光的控制当中,进而实现各种光效以及色彩变化.根据标准的512协议,其物理连接与传统上的RS485是完全一致的,并没有什么 ...
- 洛谷P2468 粟粟的书架
题目链接:https://www.luogu.org/problemnew/show/P2468 知识点: 可持久化线段树.二分.前缀和 解题思路: 对于 \(R, C \le 200, M \le ...
- OpenStack的Heat组件详解
一:简介 一.什么Heat 1. Heat 是一套业务流程平台,旨在帮助用户更轻松地配置以 OpenStack 为基础的云体系.利用Heat应用程序,开发人员能够在程序中使用模板以实现资源的自 ...