繁体   English   中英

如何从有效载荷未签名的字符buf中获取IP和PORT?

[英]How can i get IP and PORT from payload unsigned char buf?

我有未签名的char buf:

IP位于197位置,端口位于205位置。如何从这个未签名的char buf获取正确的IP和PORT?

我尝试了一些数字转换,但是没有运气:(

任何帮助或提示表示赞赏。

我假设IP从第197个位置开始,它在array中占据4个位置(每个八位位点1个),在端口占据1个位置。 在C / C ++ 197中,应该使用索引196进行访问。因此,您可以通过以下方式访问IP和端口地址的4个八位字节:

short int octants[] ={buf[196],buf[197],buf[198],buf[199]} ;
short int portId = buf[204] ; 

好吧,我找到了解决方案,谢谢你们朝着正确方向发展:)

输出正确结果的代码是:

printf("IP: %d.%d.%d.%d", buf[197], buf[198], buf[199], buf[200]);

int port = 0;                           // Start with zero
port |= buf[204] & 0xFF;                // Assign first byte to port using bitwise or.
port <<= 8;                             // Shift the bits left by 8 (so the byte from before is on the correct position)
port |= buf[205] & 0xFF;

printf(" Port: %d", port);

结果是:IP:8.8.8.8端口:53

暂无
暂无

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

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