如何从libcurl中检索目标IP地址

时间:2014-05-09 09:45:27

标签: c++ c curl libcurl

我在我的应用程序中使用libcurl作为http客户端。

我使用以下libcurl函数与HTTP服务器进行通信:

curl_easy_setopt(curl, CURLOPT_URL, url);

我想在发送第一条http消息后知道服务器URL的IP地址。我如何用libcurl做到这一点。

注意:HTTP服务器可以将第一条HTTP消息重定向到另一台服务器。如何知道第二台服务器的IP地址?

1 个答案:

答案 0 :(得分:3)

来自curl_easy_getinfo

  

<强> CURLINFO_PRIMARY_IP
  将指针传递给char指针,以接收指向以零结尾字符串的指针,该字符串包含使用此curl句柄完成的最近连接的地址。如果已启用,则此字符串可以是IPv6。请注意,您将获得指向将在下一个请求时重复使用的内存区域的指针,因此如果要保留信息,则需要复制该字符串。 (在7.19.0中添加)

这应该是任何重定向后的最终连接。

另一种方法可能是使用CURLINFO_LASTSOCKET并从中提取对等体,但我不知道在连接完成后使用的套接字有效多长时间。