gpt4 book ai didi

c++ - 使用 libpcap 读取数据包

转载 作者:太空宇宙 更新时间:2023-11-04 05:43:15 39 4
gpt4 key购买 nike

我正在使用 pcap 来监控 http 请求和响应。我已经设置了 pcap_loop 并在我的回调函数中获取数据包,但我不知道如何读取数据包内容。这是我的回调函数:

void got_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet)
{
printf("%s\n", packet);
}

输出看起来总是像一系列反斜杠和后面的三个数字

\200\205\300

我想知道如何使内容可读,以便我可以找到并处理 http 请求和响应?

更新:

我的目标是读取 HTTP 请求和响应,有什么合适且简洁的方法可以做到这一点吗?

最佳答案

这是因为输出是原始二进制数据,而不是 ascii 字符串,所以 printf 只输出它直到第一个 0 字节。要打印数据包中的所有可读内容,请使用类似的东西:

for (int i = 0; i < header->caplen; ++i) {
if (isascii(packet[i])) {
putchar(packet[i]);
} else {
putchar('.');
}

关于c++ - 使用 libpcap 读取数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12629080/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com