繁体   English   中英

c lib中是否有一个function来打印类似于Wireshark格式的数据包(位置然后逐字节)

[英]is there a function in a c lib to print data packets similar to Wireshark format (position then byte by byte)

C lib中是否有一个function来打印类似于Wireshark格式的数据包(位置然后逐字节)

我查看了他们的代码,他们使用的树对我的任务来说太复杂了。 我也可以从头开始编写自己的版本,但我不想重新发明轮子,所以我想知道是否有一些我可以使用的代码。 我可以使用的库有什么建议吗?

*我拥有的数据位于无符号整数的缓冲区中。

0000 01 02 ff 45 a3 00 90 00  00 00 00 00 00
0010 00 00 00 00 00 00 00 00  00 00 00 00 00
0020 00 00 00 00 00 00 00 00  00 00 00 00 00 ... etc

谢谢!

我怀疑libC中是否存在这样一个特定的function,但系统比较简单:

for (unsigned k = 0; k < len; k++)
{
    if (k % 0x10 == 0)
        printf("\n%04x", k);
    if (k % 0x4 == 0)
        printf(" ");
    printf(" %02x", buffer[k] & 0xff);
}

用行长替换第一个模数,用字长替换第二个模数就可以了(当然,尝试使一个模数成为另一个模数)

编辑:

正如我刚刚注意到您提到的数据在无符号整数缓冲区中,您必须将其转换为这部分的无符号字符缓冲区。

当然,您可以使用具有按位移位和每个循环四次打印的无符号缓冲区来执行此操作,但这确实会导致不必要的繁琐代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM