#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string>
#include <iostream>
#include <string.h>
// 注:如需获取网站IP地址,参数填写域名即可,不需加"http://"
int socket_resolver(const char *domain, char* ipaddr)
{
if (!domain || !ipaddr) return -1;
struct hostent* host=gethostbyname(domain);
if (!host)
{
return -1;
}
// 获取第一个IP地址
strncpy(ipaddr, inet_ntoa(*(in_addr*)host->h_addr), 16);
#if 0
// 获取所有的地址
for (int i = 0; host->h_addr_list[i]; i++)
{
//printf("%d ip: %s\n", i, inet_ntoa(*(in_addr*)host->h_addr_list[i]));
}
#endif
return 0;
}
int main()
{
//char* hostname = "www.latelee.com";//"www.baidu.com";//"latelee-wordpress";
char* hostname = "172.18.18.168";
char ip[16] = {0};
socket_resolver("cloud.hd123.net.cn", ip);
printf("cloud.hd123.net.cn: %s\n", ip);
socket_resolver("www.latelee.com", ip);
printf("dddd: %s\n", ip);
socket_resolver("www.baidu.com", ip);
printf("dddd: %s\n", ip);
socket_resolver("latelee-wordpress", ip);
printf("dddd: %s\n", ip);
socket_resolver("172.18.18.18", ip);
printf("dddd: %s\n", ip);
std::string domain;
std::string ipstr;
ipstr.resize(16);
domain = "www.baidu.com";
socket_resolver(domain.data(), (char*)ipstr.c_str());
printf("dddd: %s\n", ipstr.c_str());
return 0;
}