更改NuSOAP的传出IP

Vla*_*mir 0 php ip curl soap nusoap

我用专用IP地址托管了cPanel,

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

我需要使用带有该专用IP的nusoap进行一些传出呼叫:

$nusoap = new nusoap_client("https://URL/");
$call   = $nusoap->call(...);
Run Code Online (Sandbox Code Playgroud)

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

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

Rob*_*bie 5

1)使用PHP SoapClient而不是NuSoap(自PHP5开始提供该功能,希望您仍未使用PHP4,因为它已不再受支持,并且NuSoap库本身尚未更新超过3年)。

2)您可以将流上下文传递给具有bindto选项集的SoapClient构造函数。

积分:直接取自于是否可以指定用于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));
Run Code Online (Sandbox Code Playgroud)

编辑:如果必须使用NuSoap,您是否尝试过

nusoap_client->setCurlOption(CURLOPT_INTERFACE, $website_ip)
Run Code Online (Sandbox Code Playgroud)

从来源:

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