根据域名(或者主机名)获得IP
gethostbyname, 涉及到DNS解析
#include <stdio.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
static const char *hostname2 = "baidu.com";
int main(int argc, char *argv[]) {
struct hostent *host;
host = gethostbyname(hostname2);
if (!host) {
perror("get host error");
return 1;
}
fprintf(stdout, "host full name, %s\n", host->h_name);
char **ptr = host->h_addr_list;
for (; *ptr != 0; ++ptr) {
unsigned int *addr = (unsigned int*)*ptr;
struct in_addr in;
in.s_addr = *addr;
char *str_addr = inet_ntoa(in);
if (str_addr) {
fprintf(stdout, "addr %ud %s\n", *addr, str_addr);
}
}
return 0;
}