libnet 打印输出端口为啥不对。

2016-11-22 19:07:17 +08:00
 JohnLou

下面的代码输出 ip 地址是正确的,但这端口一直变化,内存地址应该正确了呀。

ip = (struct libnet_ipv4_hdr*)(packet + ETHERNET_H_LEN);
tcp = (struct libnet_tcp_hdr*)(ip + ip->ip_hl * 4);

u_int8_t* addr = (u_int8_t*)(&(ip->ip_src.s_addr));
printf("src ip: %d:%d:%d:%d\n", addr[0], addr[1], addr[2], addr[3]);
printf("src port: %d, dst port: %d\n", ntohs(tcp->th_sport), ntohs(tcp->th_dport));
853 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/322455

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX