c++Windows自动检测代理设置

c++ Windows automatically detect proxy settings

本文关键字:设置 代理 自动检测 c++Windows      更新时间:2023-10-16

我有一个C++程序,我想在我的客户端机器上使用它。然而,我的一些客户是代理人。因此,我希望我的程序能够自动检测这些代理。

我已经尝试了许多解决方案,例如读取代理设置的注册表,尝试Windows API的,等等

然而,他们都没有取得好成绩。例如,注册表有时保存PAC文件的url,有时保存实际代理地址本身。除此之外,如果代理是在客户端机器上设置的,我还找不到任何与代理相关的用户名和密码(有些用户说他们有)。

所以,基本上我的问题是:我如何在C++中自动确定我的客户端的代理设置,以便稍后在我的LibCurl请求中使用代理设置:

  • 代理地址
  • 代理端口
  • 代理用户
  • 代理密码

我无法让它发挥作用,我已经试了两周了,但没有任何改善。。。

您不能以通用的方式读取代理设置,因为每个应用程序都可以自由地以任何方式存储它。您应该能够使用WinHttpGetIEProxyConfigForCurrentUser函数读取Internet Explorer代理,它也适用于使用此设置的用户浏览器,如Google Chrome。

如何在C++中自动确定客户端的代理设置,以便在LibCurl请求中使用代理设置?

libproxy就是答案!

GitHub 上的Libproxy主页

GitHub 上的Libproxy回购

根据主页,它具有以下功能:

  • 支持所有主要平台:Windows、Mac和Linux/UNIX(请参阅即将发布的0.4版本)
  • 极小的堆芯占地面积
  • libproxy核心中没有外部依赖项(libproxy插件可能有依赖项)
  • 稳定的外部API中只有3个函数(1.0将提供完全的稳定性)
  • 网络拓扑结构变化的动态调整
  • 处理所有场景中的代理设置的标准方法
  • 崇高的快乐和成就感