0

如何使用 c 或 c++ 在 linux 中读取系统代理设置值

4

3 回答 3

4

你正在寻找这个功能getenv ("http_proxy")

于 2012-07-20T11:28:06.140 回答
1

系统代理设置通常存储在环境变量中,如 HTTP_PROXY、HTTPS_PROXY 等。

envp'C' 允许我们通过向main() 函数添加额外参数来读取注册变量,如图所示。

    int main (int argc, char *argv[], char *envp[])
    {
      char *http_proxy, *https_proxy;
      http_proxy = getenv("HTTP_PROXY");
      https_proxy = getenv("HTTPS_PROXY");
      printf ("Proxy settings :: %s on %s.\n", http_proxy, https_proxy);
      return 0;
    }

这应该根据您要处理的变量来解决问题。

于 2012-07-20T11:28:41.383 回答
0

我见过的大多数 Linux 发行版都没有“系统代理”的概念。在 Linux 之上运行的桌面环境(KDE、Gnome 等......)通常具有设置代理的配置选项,大多数为该桌面编写的应用程序都可以访问该代理,但如何在其中查找代码将根据您运行的环境而有所不同。此外,在 Gnome 下运行例如 KDE 应用程序(反之亦然)可能不会获得相同的结果,除非两者都已正确配置。由于这一点以及其他一些原因,许多单独的应用程序都有自己的方式来设置代理。适用于某些应用程序的其中一种可能方法是其他答案中提到的环境变量(其他可能性是各种配置文件,或连接到 gconf 等配置服务之一)。如果您正在编写一个新应用程序并且只想能够在该应用程序中设置和使用代理,那么这种方法可能是最简单的方法之一。

于 2012-07-20T14:09:29.250 回答