【问题标题】:Why do people use CURLOPT_PROXYPORT 3128 without CURLOPT_PROXY?为什么人们在没有 CURLOPT_PROXY 的情况下使用 CURLOPT_PROXYPORT 3128?
【发布时间】:2015-08-29 10:06:12
【问题描述】:

我在对this 问题的已接受答案的评论中提出了这个问题,但也许是因为这是对一个老问题的评论,也许是因为答案对任何有把握的人来说都是显而易见的,所以没有得到回应。但我只是想确定一下……我看到无数通过 php curl 访问 google maps api 的代码示例,其中指定了:

curl_setopt($ch, CURLOPT_PROXYPORT, 3128);

但没有指定或提及CURLOPT_PROXY。对我来说,这没有任何意义。所以我认为这只是有人在发布之前从他们拥有的一些示例代码中删除了代理行,而其他所有人都盲目地将其复制粘贴到他们的代码中然后发布了该代码。

谁能证实?如果是CURLOPT_PROXY这一行被省略了,有谁知道3128端口的意义吗?除了使用谷歌地图的类似代码 sn-ps 之外,我没有在其他任何地方看到该端口号。

【问题讨论】:

  • 作为一个元问题,我不知道如何直接链接到一个问题的特定答案,所以我只是链接到这个问题并说“接受的答案”。好像一定有​​办法,但我还没有找到。

标签: google-maps curl proxy


【解决方案1】:

Apparently,

3128 端口通常被 'squid' 使用,这是一个非常流行的网络代理服务器 也可以代理其他协议(例如 ftp)。

Wikipedia,鱿鱼:

具有广泛的用途,从通过缓存加速网络服务器 重复请求;缓存 web、DNS 和其他计算机网络 查找共享网络资源的一群人;帮助 通过过滤流量来确保安全。

所以看起来它不仅仅是一个任意的端口号。

以后,您可以通过单击答案下方的“分享”并复制链接来链接到特定答案。例如,您所指答案的链接是https://stackoverflow.com/a/11395547/4241842

【讨论】:

  • 感谢分享的提示 - 我想我想我想它会主动发布一些东西而不是给一个永久链接来复制粘贴!我愿意接受你的回答,但它只解决了部分问题。如果没有指定 CUROPT_PROXY(即服务器),CURLOPT_PROXYPORT 是否有任何用途?是否有某种 curl 默认值使它有用,或者 CURLOPT_PROXYPORT 真的只是从使用 squid 代理服务器的原始代码中携带的无用痕迹? -谢谢
  • 我看到的所有其他谷歌地图 curl 示例,人们使用端口 3218 而不设置代理服务器。在阅读了更多关于CURLOPT_URL 的内容后,我发现the host part of the URL contains the address of the server that you want to connect to。我最好的猜测是,由于他们为地理编码指定的 URL (maps.google.com/maps/api/geocode/...) 会调用 Google,而后者又会调用 makes a call to an external server,因此您不必设置自己的代理服务器。
  • 感谢您的回复,但我不能说我同意(或者我只是不明白您的意思)。 CURLOPT_URL 指定目标 url,它是使用 curl 时唯一的 必需 选项。阅读 CURLOPT_PROXYPORTCURLOPT_PROXY 的文档后,我似乎比以往任何时候都更清楚没有 CURLOPT_PROXY 的 CURLOPT_PROXYPORT 没有任何意义。 OTOH,CURLOPT_PROXY 可以指定一个端口号,使 CURLOPT_PROXYPORT 完全没有必要。所以还没有答案。
  • 奇怪的是,虽然您关于“所有其他 Google 地图 curl 示例”的评论与促使我提出这个问题的内容相匹配,但刚才我做了更多的谷歌搜索并很快找到了几个不使用 CURLOPT_PROXYPORT 的示例完全可以选择。所以我认为这确实是一个草率的复制粘贴爆炸,导致在网络上的许多帖子中出现的选项没有匹配的 CURLOPT_PROXY。
猜你喜欢
  • 2017-06-29
  • 1970-01-01
  • 2020-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多