所以我有这个程序找到我的电脑的外部IP地址。我需要将此数据写为变量,但我不知道如何。这是源代码(我已经知道过多的标题,它们一次都在使用,我还没有清理它。)
#include <stdio.h>
#include <C:\Documents and Settings\Jacob Grass\My Documents\C++\Server Software\curl\curl.h>
#include <C:\Documents and Settings\Jacob Grass\My Documents\C++\Server Software\curl\types.h>
#include <C:\Documents and Settings\Jacob Grass\My Documents\C++\Server Software\curl\easy.h>
#include <stdlib.h>
#include <unistd.h>
#include <windows.h>
#include <iostream>
#include <fstream>
//http://www.cplusplus.com/forum/windows/36638/
//http://bot.whatismyipaddress.com/
using namespace std;
int ipfetch (void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init ();
if (curl)
{
curl_easy_setopt (curl, CURLOPT_URL, "http://bot.whatismyipaddress.com/");
res = curl_easy_perform (curl);
curl_easy_cleanup (curl);
}
return 0;
}
int main (){
while(1){
ipfetch();
//Sleep in milliseconds
Sleep(300000);
cout<<"\n";
}
}
任何帮助将不胜感激。
答案 0 :(得分:1)
AFAIK,cURL正在播放:它不会保留整个答案,但会将答案的块传递给write function。
所以,你需要先设置一个写函数,如下所示:
size_t curlWriteToString (void *buffer, size_t size, size_t nmemb, void *userp) {
((std::string*) userp)->append ((const char*) buffer, size * nmemb);
return size * nmemb;};
...
std::string got;
curl_easy_setopt (curl, CURLOPT_WRITEFUNCTION, curlWriteToString);
curl_easy_setopt (curl, CURLOPT_WRITEDATA, &got);
这会将响应保存到got
变量中。
P.S。我粘贴的代码来自libglim/curl.hpp。