gpt4 book ai didi

c - 使用winsock.h将整数转换为ipv4

转载 作者:行者123 更新时间:2023-11-30 19:22:30 25 4
gpt4 key购买 nike

我有一个问题,关于使用union库winsock.h将数字转换为ipv4地址怎么写?

#ifdef obsolete
union {
struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
struct { u_short s_w1,s_w2; } S_un_w;
u_long S_addr;
} S_un;

最佳答案

这是一种方法:

S_un addr;

addr.S_addr = htonl( 2655715960 );

printf("%hhu.%hhu.%hhu.%hhu %hhX:%hhX:%hhX:%hhX \n",
addr.S_un_b.s_b1, addr.S_un_b.s_b2, addr.S_un_b.s_b3, addr.S_un_b.s_b4,
addr.S_un_b.s_b1, addr.S_un_b.s_b2, addr.S_un_b.s_b3, addr.S_un_b.s_b4 );

魔数(Magic Number) 2655715960 是您评论中的示例输入值。代码将打印想要的行:

158.75.2.120  9E:4B:2:78

注意:使用十六进制打印 IPv4 地址并不常见。

注2:使用struct in_addr而不是S_un。因此,您可以使用inet_ntoa函数将IP号码转换为字符串。

关于c - 使用winsock.h将整数转换为ipv4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16066670/

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