gpt4 book ai didi

c - 打印数据包内容的十六进制值

转载 作者:可可西里 更新时间:2023-11-01 02:52:39 26 4
gpt4 key购买 nike

我正在使用 libpcap 进行数据包嗅探。我想像在 Wireshark 中一样以十六进制打印数据包内容。我怎么做?假设我想打印 TCP 段的第 21 个字节(选项的第一个字节,对于 MSS 通常为 0x02)的 HEX 值,我该怎么做?

最佳答案

试试这个:

char data[]; // byte array with packet content;
int start; // starting offset
int end; // ending offset

int i;

for (i = start & ~15; i < end; i++)
{
if ((i & 15) == 0)
printf("%04x ",i);
printf((i<start)?" ":"%02x%c",(unsigned char)data[i],((i+1)&15)?' ':'\n');
}
if ((i & 15) != 0)
printf("\n");

它将打印出提供的 data 缓冲区从 start 偏移量到 end 偏移量的部分;

关于c - 打印数据包内容的十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13001015/

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