gpt4 book ai didi

c - 使用 gethostbyname 的 DNS

转载 作者:太空宇宙 更新时间:2023-11-04 03:31:56 24 4
gpt4 key购买 nike

我在 C 中执行以下操作以从主机名获取 IP 地址。它打印 IP 是? *?, 所以它不工作。我做错了什么?

 char * targetHostName = server_proxy_hostname;
char * targetPort = server_proxy_port;
struct hostent *info;
info = gethostbyname(targetHostName);
char ** ipAddresslist;
ipAddresslist =info -> h_addr_list;
char * ipAddress = ipAddresslist[0];

printf("IP is %s\n", ipAddress);

最佳答案

您假设它返回一个字符串(不是这种情况)。

gethostbyname()

char **h_addr_list

A list of IP addresses for this host. Although this is a char**, it's really an array of struct in_addr*s in disguise. The last array element is NULL.

您需要使用 inet_ntoa(), inet_aton(), inet_addr以便将值转换为正确的输出格式。

关于c - 使用 gethostbyname 的 DNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35755607/

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