在PHP中自动检测服务器的代理设置

时间:2009-05-13 00:30:50

标签: php proxy detect

我有一个在Windows服务器上运行的PHP脚本。该脚本创建一个SOAP客户端对象,可以为其提供proxy_host和proxy_port。我不希望硬编码这些值或使它们成为配置选项,而是希望PHP脚本能够自动检测本地服务器的代理设置,这样如果它们发生变化或者脚本在不同的服务器上运行,它就会起作用。有人知道如何在PHP中执行此操作吗?

2 个答案:

答案 0 :(得分:0)

鉴于各种可能的代理配置,我认为目前不可能。通常,组件(例如支付网关)为代理信息(通常在php.ini文件中)提供配置设置,您可以在其中设置这些信息。否则,如果您在基于* Nix的环境中运行,则可以尝试使用以下方法获取当前正在运行的用户的环境设置:

http://us.php.net/manual/en/function.getenv.php

这样,如果服务器用户更改了代理设置,您的脚本就可以选择它并尝试使用它。

答案 1 :(得分:0)

这有点疯狂,你可能不想这样做。但是在win32下你可以编写一个php插件来获取WinHttpGetIEProxyConfigForCurrentUser()的值。

或者通过更多研究,您可以找到注册表值,然后使用win32std查询它们。