使用libcurl库把域名转化IP

原创 2015年07月10日 17:42:45

环境

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


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

libcurl 一旦出现连接失败后,后续请求该域名,DNS则不会重新解析该域名(libcurl-7.35.0)

在使用 multi interface过程中,出现了一个问题。/etc/hosts中某域名的 ip下架了,然后修改为最新的 ip, 但是程序请求该域名解析出来的IP依旧是之前已经下架了得 ip地址。...

curl获取站点的各类响应时间(dns解析时间,响应时间,传输时间)

有时候为了测试网络情况,需要返回每个阶段的耗时时间,比如DNS解析耗时,建立连接所消耗的时间,从建立连接到准备传输所使用的时间,从建立连接到传输开始所使用的时间,整个过程耗时,下载的数据量,下载速度,...

Linux下靠谱的获取本机IP地址的C代码实现

#include #include #include #include #include #include #include #include #include #i...

dns解析相关代码分析

转载至:http://blog.chinaunix.net/uid-23242010-id-93354.html TrafficServer提供了DNS解析相关的功能,相关模块为iocore/dns...

dns解析相关代码分析

TrafficServer提供了DNS解析相关的功能,相关模块为iocore/dns。目前dns模块还有很多问题需要解决[1]。     首先从配置管理上分析dns模块。以下给出ts配置文件reco...

go(golang) dns 解析源码 go/src/net/dnsclient_unix.go 分析

go dns 解析 源码在go/src/net/dnsclient_unix.go, lookupHost函数调用关系如下: lookupHost() ->goLookupHostOrder() --...

curl 使用详解

cURL.1 手册页 名称 cURL - transfer a URL 摘要 cURL[选项] [URL... ] 描述 cURL 是一个向服务器或从服务器传输...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)