使用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,前三个添加要不然会出现链接错误
相关文章推荐
- 二维数组最大面积的问题(动态规划)
- 网速慢的原因和解决方案
- 360或其他双核浏览器下在兼容模式用chrome内核渲染的方法
- Android、IOS开发思路及项目文件结构
- iOS 中的 NSTimer
- 个人常用iOS第三方库以及XCode插件介绍
- C++ primer 5 笔记1 chapter 1 begin
- POJ 2106 Boolean Expressions(模拟+LL1)
- Oracle-BPM(三)
- ViewAnimator 之(二)ViewFlipper
- WebStorage当做简单数据库
- ThreadLocal
- 快速备份和还原 MySQL 数据库的另一种方法
- 在引入的css或者js文件后面加参数的作用
- 360或其他双核浏览器下在兼容模式用chrome内核渲染的方法
- mongdb性能优化收集
- Redis持久化配置
- MongoDB数据库的备份,恢复与迁移,回滚 (优秀)
- NYOJ 169 素数
- POJ3592 Instantaneous Transference 强连通+最长路