跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • C 语言是怎么抓取网口流量的数据包并解析的?
未分類
24 9 月 2020

C 语言是怎么抓取网口流量的数据包并解析的?

C 语言是怎么抓取网口流量的数据包并解析的?

資深大佬 : mikywei 1

1. 现在很多的硬件盒子(路由器、防火墙、WAF 、网络审计)都是 php 的后台,这些硬件盒子也算服务器,但性能不高不大可能运行其它后台语言,但听说又是用 C 语言抓取网口流量,然后交给 php 处理的;
2. 很好奇这些硬件盒子是怎么用 C 语言和 php 拿到网口流量的数据,一般我们抓包都是用 tcpdump 和 wireshark 才行,php 怎么拿到网卡数据的呢?
3. C 语言和 php 是怎么解析网口的流量的呢?是先保存成 pcap 的数据包然后再用相关 php 函数进行解析?还是能实时抓到网口的数据实时解析出来呢?
4. 关于解析:我说的解析就是把原本网口的流量还原成两个 ip 和端口相互通信的会话,然后再识别出这个会话的协议是 http 、ftp 、dns 、ssh 、telnet 、mysql 、icmp 或者其它的网络协议。
大佬有話說 (14)

  • 資深大佬 : ripperdev

    实时抓取网卡数据包再解析的,C 语言有 libpcap 库,C++有 libtins 库。
    可以用 C/C++解析数据包,生成图表数据再提供给 PHP 展示用。

  • 資深大佬 : Chenamy2017

    抓包处理用 C ( libpcap ),php 只是后台而已。

  • 資深大佬 : sylar1015

    巧了,现有源码一套,实时 C 抓包、IP 组包,解析上层各种协议

  • 資深大佬 : LANB0

    原始套接字也算一个选择

  • 資深大佬 : reus

    PHP 的 web 服务器就直接用 socket api 啊,抓什么流量?

  • 資深大佬 : w2exzz

    tcpdump 和 wireshark 也是 C 写的啊……
    所以 C 语言也能抓到流量……
    自己照着网上的教程写个 demo 就明白了

  • 資深大佬 : mXw

    自己用 raw socket 摸一遍流程就懂了

  • 資深大佬 : nomansky

    1. 使用 DPI 深度包检测技术
    2. 底层一般都是调用 C 库
    3. 可以保存成文件,流量大的情况但一般都是用缓存做临时保存
    4. 根据协议特征分析,比如协议头、字段,握手等特征然后和特征库进行匹配

  • 資深大佬 : janxin

    libpcap 抓取流量

  • 資深大佬 : kangsheng9527

    netfilter 需要商业服务找我!

  • 資深大佬 : no1xsyzy

    wireshark 的终端版本 tshark 看 –help,里面直接指明了 -f 选项用的是 libpcap 的语法。
    所以 libpcap 就成。

  • 資深大佬 : chanchancl

    3: 内核在初始化和启动网卡的时候,从驱动层取得 skb 之后,向上层 tcp/ip 转移的时候,会有 dump 点,将收到的信息传给外部函数,而 tcpdump 用了相关的系统调用,就可以收到这些包。

    wireshark 用 libcap 去抓包,而 libcap 内的实现是建立 socket 时,指定一些参数,让数据包转发到自己的队列

  • 資深大佬 : hasdream

    c 库 libpcap pfring 解析后发到 MQ 或者 IPC php 接收处理

  • 資深大佬 : hasdream

    1. c 端一般做抓取 过滤协议
    2.然后就把 packet 发给下层处理 (如果逻辑耗时太长就出现 kernel drop 问题)
    3.下层 根据收到的 packet 根据需要 进行解析(比如 ip header 中的协议信息是在那个位置 rfc 中有说明)
    4.入库展示.

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具