如何使用 CURL_SETOPT 通过另一个 IP 地址路由 CURL?

Posted

技术标签:

【中文标题】如何使用 CURL_SETOPT 通过另一个 IP 地址路由 CURL?【英文标题】:How to route CURL through another IP address using CURL_SETOPT? 【发布时间】:2018-12-15 22:01:31 【问题描述】:

我正在使用 mailchimp 插件将我的 woocommerce 网站连接到他们的平台,但我的服务器的 IP 地址被 Akamai 阻止,Akamai 是他们的 API 路由通过的第三方安全层。有人告诉我,我可以使用 mailchimp 的唯一方法是更改​​ API 调用所经过的 IP 地址。所以现在我正在尝试破解插件来做到这一点。我相信我需要做的是使用 curl setopt 但我不知道如何在这段代码中使用它。谁有想法?我几乎可以肯定我把它放在某个地方的这段代码,但我不知道正确的语法。

protected function put($url, $body)

    $curl = curl_init();

    $json = json_encode($body);

    $options = $this->applyCurlOptions('PUT', $url, array(), array(
        'Expect:',
        'Content-Length: '.strlen($json),
    ));

    $options[CURLOPT_POSTFIELDS] = $json;

    curl_setopt_array($curl, $options);

    return $this->processCurlResponse($curl);

【问题讨论】:

您需要更改服务器的 IP 地址或使用其他服务器作为代理。 我有另一个 IP 地址可用于我的帐户(我的主机通过专用 IP 路由我网站的前端,所以我想使用那个... API 调用仍然来自原始的)所以我认为可以通过修改上面的这段代码来完成 【参考方案1】:

最好的解决方案是通过注册 CloudFlare 在您的网站上启用免费的 cloudflare 服务。激活 cloudflare 后,您的网站 IP 将自动更改为 cloudflare 代理 IP 地址,然后您将通过 hostname to IP 找到网站 IP 并与 API 通信,而无需更改您的服务器 IP。

【讨论】:

我认为这根本不是最好的解决方案

以上是关于如何使用 CURL_SETOPT 通过另一个 IP 地址路由 CURL?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 序列化数组(数组到查询字符串)

如何通过另一个网络上的浏览器打开 laravel 应用程序(使用公共 ip)

为 curl 请求选择传出 IP

如何通过另一个已知数据查找数据? [复制]

如何通过 PHP 搜索 Linkedin?

如何通过IP地址来访问网站