
1 ripperdev 2020-09-22 16:17:05 +08:00 实时抓取网卡数据包再解析的,C 语言有 libpcap 库,C++有 libtins 库。 可以用 C/C++解析数据包,生成图表数据再提供给 PHP 展示用。 |
2 Chenamy2017 2020-09-22 16:59:14 +08:00 抓包处理用 C ( libpcap ),php 只是后台而已。 |
3 sylar1015 2020-09-22 17:00:40 +08:00 巧了,现有源码一套,实时 C 抓包、IP 组包,解析上层各种协议 |
4 LANB0 2020-09-22 17:07:29 +08:00 原始套接字也算一个选择 |
5 reus 2020-09-22 17:17:48 +08:00 PHP 的 web 服务器就直接用 socket api 啊,抓什么流量? |
6 w2exzz 2020-09-22 18:40:24 +08:00 tcpdump 和 wireshark 也是 C 写的啊…… 所以 C 语言也能抓到流量…… 自己照着网上的教程写个 demo 就明白了 |
7 mXw 2020-09-22 18:45:51 +08:00 自己用 raw socket 摸一遍流程就懂了 |
8 nomansky 2020-09-22 18:59:28 +08:00 1. 使用 DPI 深度包检测技术 2. 底层一般都是调用 C 库 3. 可以保存成文件,流量大的情况但一般都是用缓存做临时保存 4. 根据协议特征分析,比如协议头、字段,握手等特征然后和特征库进行匹配 |
9 janxin 2020-09-22 20:55:03 +08:00 libpcap 抓取流量 |
10 kangsheng9527 2020-09-22 21:21:14 +08:00 netfilter 需要商业服务找我! |
11 no1xsyzy 2020-09-23 03:57:11 +08:00 wireshark 的终端版本 tshark 看 --help,里面直接指明了 -f 选项用的是 libpcap 的语法。 所以 libpcap 就成。 |
12 chanchancl 2020-09-23 09:54:52 +08:00 3: 内核在初始化和启动网卡的时候,从驱动层取得 skb 之后,向上层 tcp/ip 转移的时候,会有 dump 点,将收到的信息传给外部函数,而 tcpdump 用了相关的系统调用,就可以收到这些包。 wireshark 用 libcap 去抓包,而 libcap 内的实现是建立 socket 时,指定一些参数,让数据包转发到自己的队列 |
13 hasdream 2020-09-23 14:48:04 +08:00 c 库 libpcap pfring 解析后发到 MQ 或者 IPC php 接收处理 |
14 hasdream 2020-09-23 16:21:53 +08:00 1. c 端一般做抓取 过滤协议 2.然后就把 packet 发给下层处理 (如果逻辑耗时太长就出现 kernel drop 问题) 3.下层 根据收到的 packet 根据需要 进行解析(比如 ip header 中的协议信息是在那个位置 rfc 中有说明) 4.入库展示. |
15 mikywei OP @reus 我的意识是经过服务器的流量,而不是访问 web 后台服务的 http 流量,这 php 应该无法直接获取吧。 |