您的位置:首页 > 其它

使用libcurl库把域名转化IP

2015-07-10 17:42 567 查看

环境

vs2005及win7

代码

int DomainToIP(const char *domain, string &out)
{
if (domain == NULL)
{
return -3;
}

//判断是否本身为ip,为ip直接返回
int a,b,c,d;
int ret=0;
ret=sscanf(domain,"%d.%d.%d.%d",&a,&b,&c,&d);
if(ret==4&&(a>=0&&a<=255)&&(b>=0&&b<=255)&&(c>=0&&c<=255)&&(d>=0&&d<=255))
{
out = domain;
return 0;
}
CURLcode res;
CURL *curl;
char *ipstr=NULL;
if ((curl = curl_easy_init()) == NULL) {
curl_global_cleanup();
return -1;
}
if ((curl = curl_easy_init()) == NULL) {
curl_global_cleanup();
return -2;
}
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 30L);
curl_easy_setopt(curl, CURLOPT_URL,domain);

res = curl_easy_perform(curl);
if (res != CURLE_OK)
{
curl_easy_cleanup(curl);
curl_global_cleanup();
return res;
}

res = curl_easy_getinfo(curl, CURLINFO_PRIMARY_IP, &ipstr);
if (res != CURLE_OK)
{
curl_easy_cleanup(curl);
curl_global_cleanup();
return res;
}
out=ipstr;

curl_easy_cleanup(curl);
curl_global_cleanup();

return CURLE_OK;
}


编译及链接libcurl库

1.加宏BUILDING_LIBCURL,我使用的是静态库

2.要添加库ws2_32.lib winmm.lib wldap32.lib libcurl.lib,前三个添加要不然会出现链接错误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: