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请求的更多相关文章

  1. Android利用tcpdump和wireshark抓取网络数据包

    Android利用tcpdump和wireshark抓取网络数据包 主要介绍如何利用tcpdump抓取andorid手机上网络数据请求,利用Wireshark可以清晰的查看到网络请求的各个过程包括三次 ...

  2. Linux tcpdump命令详解

    tcpdump官网:http://www.tcpdump.org/ 转载于:http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.ht ...

  3. Linux tcpdump 命令详解

    简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的& ...

  4. Tcpdump命令详解

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

  5. 【原创】利用Windows系统日志统计员工每天上下班考勤时间

    利用Windows系统日志统计员工每天上下班考勤时间(命令行参数为统计月份): using System; using System.Collections.Generic; using System ...

  6. tcpdump 命令行抓包工具

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3898248.html ...

  7. 结合tcpdump命令对traceroute深入分析

    昨天突然被问到traceroute的原理,一时竟也说不出来,有些命令平时虽然经常在用,但实际原理确并不了解,趁这次机会就来梳理一下. traceroute:是网络诊断中,用来分析IP包经过那些路由的命 ...

  8. linux下tcpdump命令详解

    简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的 ...

  9. 利用Linux命令行进行文本按行去重并按重复次数排序

    最近杂事太多,正事进展缓慢.Fighting! linux命令行提供了非常强大的文本处理功能,组合利用linux命令能实现好多强大的功能.本文这里举例说明如何利用Linux命令行进行文本按行去重并按重 ...

随机推荐

  1. openjdk tomcat 安装

    1 jdk 这里用openjdk yum install java-1.6.0-openjdk export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6 ...

  2. Kali Linux 2020.1安装以及安装后要做的事

    Kali Linux是基于Debian的Linux发行版,预装了许多渗透测试软件,让大家从各种繁琐的软件安装中解脱出来,专注于测试本身. 本文章介绍了如何安装目前最新的2020.1版本,以及安装好后补 ...

  3. INNODB 数据页结构

    InnoDB DataPage 16384B 16K 38B FILE HEADER 56B PAGE HEADER RECORD Infimum + supremum Records UserRec ...

  4. mysql设置文档快捷写

    select distinct column_name,column_comment,column_type from information_schema.columns where table_n ...

  5. Python创建一个简单的区块链

    区块链(Blockchain)是一种分布式账本(listributed ledger),它是一种仅供增加(append-only),内容不可变(immutable)的有序(ordered)链式数据结构 ...

  6. HDU2825AC自动机+状压

    //我感觉这题不如叫你不看代码就不知道题干在说啥,强烈吐槽 Liyuan lives in a old apartment. One day, he suddenly found that there ...

  7. Jmeter基础-HTTP请求

    启动Jmeter 打开jmeter/bin文件/jmeter.bat(Windows执行文件)文件,就可以启动jmeter了 1.创建测试计划 启动后默认有一个TestPlan(测试计划),可修改其名 ...

  8. jQuery基础总计

    框架概述 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法.框架是完成某种功能的半成品,框架是将我们日常的繁琐的代码进行抽取,并提供出更加简洁,功能更加 ...

  9. vue路由中使用keep-alive 以及activated和deactivated 钩子

    本次只是记录下开发中碰到的问题. 最近做一个活动页面,涉及到角色和权限的问题,需要跳转很多页面,于是vue-router走起,顺便keep-alive也用起来了,嗯,跳转的很爽,但是一个详情页面组件, ...

  10. Golang源码学习:监控线程

    监控线程是在runtime.main执行的时候在系统栈中创建的,监控线程与普通的工作线程区别在于,监控线程不需要绑定p来运行. 监控线程的创建与启动 简单的调用图 先给出个简单的调用图,好心里有数,逐 ...