更改 NuSOAP 的传出 IP

Changing outgoing IP for NuSOAP

我有一个带有专用 IP 地址的 cPanel 主机,

然而,传出 IP 仍然是主机提供商的共享 IP(应该是)。

我需要使用具有该专用 IP 的 nusoap 进行一些去电:

$nusoap = new nusoap_client("https://URL/");
$call   = $nusoap->call(...);

如何使用 NuSOAP 在此处更改传出 IP?

我知道如何使用 cURL (curl_setopt($ch, CURLOPT_INTERFACE, $website_ip);),但如何使用此方法实现相同的目的。已经在服务器端和 php 端工作了几个小时,但仍然无法弄清楚。

1) 使用 PHP 的 SoapClient 而不是 NuSoap(它自 PHP5 以来就可用,希望您不再使用 PHP4 作为它非常不受支持,而且 NuSoap 库本身已经 3 年多没有更新了。

2) 您可以将流上下文传递给设置了 bindto 选项的 SoapClient 构造函数。

致谢:直接取自 Is it possible to specify the outgoing network interface to use for a PHP SoapClient?

$opts = array(
    'socket' => array(
        'bindto' => '192.168.0.100:0',
     ),
);

$ctx = stream_context_create($opts);

$client = new SoapClient('the.wsdl', array('stream_context' => $ctx));

编辑:如果你一定要用NuSoap,你试过了吗

nusoap_client->setCurlOption(CURLOPT_INTERFACE, $website_ip)

来源:

function setCurlOption($option, $value) {
    $this->debug("setCurlOption option=$option, value=");
    $this->appendDebug($this->varDump($value));
    $this->curl_options[$option] = $value;
}