65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.80/5 (9投票s)

2021 年 1 月 31 日

CPOL

2分钟阅读

viewsIcon

9275

downloadIcon

188

在 Windows C++ 应用程序中使用代理服务器的可能方法

引言

ProxyRack 是少数提供住宅 VPN 服务的代理服务提供商之一。我在开发 Facebook 数据抓取器时发现了他们的服务。ProxyRack 声称每天处理超过 8 亿个 API 请求,虽然缺乏关于公司的详细信息让人不太放心,但其定价和功能使其成为一个值得探索的吸引人的选择。

Proxycrack 开源代码示例可以在 这里 找到。

此演示尝试使用其 REST API 的 Proxy SDK,并检查一个返回您公共 IP 的网站。http://ip-api.com,一个非商业用途免费的服务,易于集成,提供 JSON、XML、CSV、换行符、PHP 格式。

视频演示

在此演示中,Proxycrack 被用作软件的一部分,用于抓取给定 Facebook 帖子的所有评论。

Demo Video

我的演示是一个基于命令行的软件组件,旨在演示使用 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 日:初始版本
© . All rights reserved.