libcurl DNS查找

libcurl DNS查找,c,dns,libcurl,C,Dns,Libcurl,我使用libcurl和pthreads对单个网站执行一些POST请求。本网站可能会随着时间的推移而改变。我希望这个程序尽可能快。所以我想到的一件事是首先找到网站的IP地址,然后将这个IP而不是网站的URL传递给线程 首先,你认为这是一件好事吗?因为它删除了每个连接(线程)中的DNS查找时间 在libcurl中我该怎么做?是否有任何函数只查找主机名的IP?或者在C语言中有没有其他简单的方法可以做到这一点?这是操作系统中DNS查询系统应该解决的问题 不进行额外查找所需的性能改进与IP可以随时间变化的

我使用libcurl和pthreads对单个网站执行一些POST请求。本网站可能会随着时间的推移而改变。我希望这个程序尽可能快。所以我想到的一件事是首先找到网站的IP地址,然后将这个IP而不是网站的URL传递给线程

首先,你认为这是一件好事吗?因为它删除了每个连接(线程)中的DNS查找时间


在libcurl中我该怎么做?是否有任何函数只查找主机名的IP?或者在C语言中有没有其他简单的方法可以做到这一点?

这是操作系统中DNS查询系统应该解决的问题

不进行额外查找所需的性能改进与IP可以随时间变化的事实相反。任何查询都应该根据DNS条目设置的某些记录超时规则进行缓存。据我所知,Windows和OS X缓存请求会自动开箱即用。在我的debian box上,我发现我必须为这个特性启用systemd解析服务。不知道你的需求,可能是你所描述的最明智的解决方案


如果您想获得绝对控制权,并且不想在某个地方(在应用程序或类似主机文件中)硬编码,那么使用getaddrinfo()并在程序范围内(甚至到磁盘)自己缓存一段时间是一个有效的解决方案。

您正在寻找
getaddrinfo()
。但这听起来有点过分了。