以下是一个使用C语言编写的简单爬虫IP代码示例:
#include
#include
#include
size_t write_callback_func(void *ptr, size_t size, size_t nmemb, void *stream) {
size_t written = fwrite(ptr, size, nmemb, (FILE *)stream);
return written;
}
int main() {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if (curl) {
FILE *fp = fopen("ip.txt", "wb"); // 保存IP信息的文件
if (!fp) {
printf("文件打开失败!n");
return 1;
}
// 设置请求的URL
curl_easy_setopt(curl, CURLOPT_URL, "http://ipinfo.io/ip");
// 设置接收到的数据回调
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback_func);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
// 发起请求
res = curl_easy_perform(curl);
// 检查请求是否成功
if (res != CURLE_OK) {
printf("请求失败: %sn", curl_easy_strerror(res));
}
// 关闭文件
fclose(fp);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
该示例使用了libcurl库,libcurl是一个强大且广泛使用的用于进行网络请求的C语言库。代码中的curl_easy_setopt函数用于设置请求的URL、数据回调等各种选项。请求的结果将保存在名为"ip.txt"的文件中。您可以根据需要对代码进行修改和扩展,例如解析返回的HTML内容,提取更多有用的信息等。
在编译该代码之前,请确保已经安装了libcurl库,并添加了正确的编译选项(例如,在Linux平台上,可以使用 -lcurl
选项进行编译)。此外,代码需要能够访问网络,因此请确保您的计算机可以进行网络连接。希望这个示例对您有所帮助!