在 Windows C++ 应用程序中使用代理服务器






4.80/5 (9投票s)
在 Windows C++ 应用程序中使用代理服务器的可能方法
引言
ProxyRack 是少数提供住宅 VPN 服务的代理服务提供商之一。我在开发 Facebook 数据抓取器时发现了他们的服务。ProxyRack 声称每天处理超过 8 亿个 API 请求,虽然缺乏关于公司的详细信息让人不太放心,但其定价和功能使其成为一个值得探索的吸引人的选择。
Proxycrack 开源代码示例可以在 这里 找到。
此演示尝试使用其 REST API 的 Proxy SDK,并检查一个返回您公共 IP 的网站。http://ip-api.com,一个非商业用途免费的服务,易于集成,提供 JSON、XML、CSV、换行符、PHP 格式。
视频演示
在此演示中,Proxycrack 被用作软件的一部分,用于抓取给定 Facebook 帖子的所有评论。
我的演示是一个基于命令行的软件组件,旨在演示使用 C++ (Visual Studio C++) 和 LibCurl 的 Proxyrack SDK。
与 libCurl 集成
作为此演示的一部分,我想将 libCurl 作为静态库使用。我成功地做到了,并且静态库是源代码的一部分。我发现 这个 答案很有用。
启动 libCurl
首先,我们启动 Curl 对象
即使 curl_easy_init() 函数必须是第一个调用的函数,我们首先调用 curl_global_init(),它设置了 libcurl 所需的程序环境。
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init.html();
发起请求
在本演示中,我们使用 API 提供的其中一个轮换住宅 IP 地址,同时使用第三方服务来返回我们的公共 IP,以便我们可以查看 IP 是否确实更改了。
CURL* curl = curl_easy_init();
if (curl)
{
/* General Proxy */
curl_easy_setopt(curl, CURLOPT_PROXY, "http://mixed.rotating.proxyrack.net:444");
curl_easy_setopt(curl, CURLOPT_PROXYUSERNAME, L"<YOURUSERNAME>");
curl_easy_setopt(curl, CURLOPT_PROXYPASSWORD, L"<YOURPASSWORD>");
curl_easy_setopt(curl, CURLOPT_URL, "http://ip-api.com/json");
curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
获取结果
在更复杂的情况下,您需要在此时添加一些代码来解释 CURL 请求返回的结果,并对其进行结构化处理(例如,为 .csv 或 .JSON)。在本例中,结果会打印在屏幕上。
日志记录
WriteLogFile()
函数代替 wprintf()
使用,并承担在 DEBUG 版本中显示调试消息,并在 DEBUG / RELEASE 版本中都写入日志文件的任务。
技术栈
- 该软件是使用 Visual Studio Enterprise C++ 2017 开发的。
- LibCurl 被用作静态库。
历史
- 2021 年 1 月 31 日:初始版本