我正在尝试转换用户输入的 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);
}