码迷,mamicode.com
首页 > 其他好文 > 详细

DNS域名解析getaddrinfo替换gethostbyname

时间:2015-01-17 12:40:56      阅读:1000      评论:0      收藏:0      [点我收藏+]

标签:dns域名解析替换记录

void DomainToIP(const char * host, const char *portStr, char *ip){
        struct addrinfo hints, *res, *res0;
        char str[32] = {0};
        
        memset(&hints, 0, sizeof(hints));
        hints.ai_family   = PF_UNSPEC;
        hints.ai_socktype = SOCK_STREAM;
        hints.ai_protocol = IPPROTO_TCP;
        hints.ai_flags    = AI_PASSIVE;
        
        int ret = getaddrinfo(host, portStr, &hints, &res0);
        if (ret != 0) {
            fprintf(stderr,"getaddrinfo: %s\n",
                    gai_strerror(ret));<pre code_snippet_id="582093" snippet_file_name="blog_20150117_2_5030408" name="code" class="cpp">            return;
        }
        
        for(res = res0; res; res = res->ai_next){
            if(res->ai_family == AF_INET){
                // Found IPv4 address
                inet_ntop(AF_INET,
                          &(((struct sockaddr_in *)(res->ai_addr))->sin_addr),
                          str, 32);
                <span style="font-family: Arial, Helvetica, sans-serif;">printf</span><span style="font-family: Arial, Helvetica, sans-serif;">("解析出来的IP: %s\n", str);</span>
                strncpy(ip, str, 32);
            }else if(res->ai_family == AF_INET6){
                // Found IPv6 address
                inet_ntop(AF_INET6,
                          &(((struct sockaddr_in *)(res->ai_addr))->sin_addr),
                          str, 32);
                printf("解析出来的IP6: %s\n", str);
                strncpy(ip, str, 32);
            }
        }
        freeaddrinfo(res0);
    }



DNS域名解析getaddrinfo替换gethostbyname

标签:dns域名解析替换记录

原文地址:http://blog.csdn.net/erica_sadun/article/details/42804473

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!