gpt4 book ai didi

使用 inet_ntop() 和 inet_pton() 转换 IP 地址输入(C 编程)

转载 作者:太空狗 更新时间:2023-10-29 15:33:09 28 4
gpt4 key购买 nike

我正在尝试转换用户输入的 IP 地址,以便我可以对其执行一些按位运算以及已存储在结构中的地址。然而,我的问题是,当 IP 地址转换回时,输出始终为 255.255.255.255。例如,输入 10.0.0.1 或 192.16.2.1 总是返回 255.255.255.255。

如有任何帮助,我们将不胜感激。谢谢

  {
struct sockaddr_in sa;
char ipinput[INET_ADDRSTRLEN];

fputs("Enter an IP Address: ", stdout);
fflush(stdout);
fgets(ipinput, sizeof ipinput, stdin);
inet_pton(AF_INET, ipinput, &(sa.sin_addr));
inet_ntop(AF_INET, &(sa.sin_addr), ipinput, INET_ADDRSTRLEN);
printf("IP Address = \%s\ \n", ipinput);
}

最佳答案

您没有检查 inet_pton 返回的值,您会注意到它失败了。事实证明,它不喜欢 fgets 留下的换行符。修剪它:

ipinput[strlen(ipinput) - 1] = 0;

关于使用 inet_ntop() 和 inet_pton() 转换 IP 地址输入(C 编程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15465104/

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