写一个域名解析的demo
#include <stdio.h>
#include <iostream>
#include <netdb.h>
#include <sys/socket.h>
#include <errno.h>
#include <arpa/inet.h>
int main()
{
struct hostent *host;
char *p1 = (char *)"vs1.video.ge.chinamobile.com";
host = gethostbyname(p1);
int h_error = h_errno;
std::cout<<"host = "<< host <<std::endl;
std::cout<<"h_error ="<< h_error <<std::endl;
if( host == NULL )
{
std::cout<<"h_error = " <<h_errno <<std::endl;
return -1;
}
std::cout<<"iptype = "<<host->h_addrtype<<std::endl;
for (int i = 0; host->h_addr_list[i]; i++) {
if( host->h_addr_list[i] != NULL)
{
std::cout<<"IP addr["<<i<<"] = "<< inet_ntoa(*(struct in_addr*)host->h_addr_list[i])<<std::endl;
}
else
{
std::cout<<"h_addr_list["<<i<<"] is temp"<<std::endl;
}
}
return 0;
}
解析特定的域名与本机配置的dns服务器地址有关,如果配置的dns不对,可能会导致无法进行域名解析。
linux的dns配置文件在 /etc/下的resovf.conf