小编Ash*_*win的帖子

getaddrinfo()函数返回错误的IP地址

我正在尝试使用getaddrinfo()解析URL的IP地址,但它总是返回错误的IP地址,我尝试了几个URL,结果是一样的.非常感谢任何帮助.

该程序返回IP地址:209.85.175.99返回真实IP,即74.125.39.147

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>

int
main()
{
 char *hostname = "www.google.lk";
 struct addrinfo hints, *res;
 struct in_addr addr;
 int err;

 memset(&hints, 0, sizeof(hints));
 hints.ai_socktype = SOCK_STREAM;
 hints.ai_family = AF_INET;

 if ((err = getaddrinfo(hostname, NULL, &hints, &res)) != 0) {
 printf("error %d\n", err);
 return 1;
 }

 addr.s_addr = ((struct sockaddr_in *)(res->ai_addr))->sin_addr.s_addr;

 printf("ip address : %s\n", inet_ntoa(addr));

 freeaddrinfo(res);

 return 0;
}
Run Code Online (Sandbox Code Playgroud)

c sockets ip ip-address getaddrinfo

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

getaddrinfo ×1

ip ×1

ip-address ×1

sockets ×1