环境
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,前三个添加要不然会出现链接错误