select传出IPcurl请求
我有一个服务器与两个不同的IP地址。 我需要从第一个IP发送奇怪的curl请求,甚至从第二个发出。 我如何select传出IP地址?
我的PHP脚本是这样的:
$curlh = curl_init($url); curl_setopt($curlh, CURLOPT_USERAGENT, $uagent); curl_setopt($curlh, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($curlh);
我怎么能这样做?
你可能想尝试设置CURLOPT_INTERFACE
选项:
curl_setopt($curlh, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx");
CURLOPT_INTERFACE:要使用的传出networking接口的名称。 这可以是接口名称,IP地址或主机名。
来自: PHP手册:curl_setopt
编辑:修正例子,正如@Michael Hart指出的 ,在另一个答案中指出。
由于我还不能回答,只是想补充Daniel Vassallo的回答。 虽然他是正确的,但他的榜样不是。
CURLOPT_INTERFACE是一个常量,不能放在引号内。 这可能会造成一些混淆,一些谁可能复制和粘贴,只是发现它不工作。 正确的代码是:
curl_setopt($curlh, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx");
此外,对于Linux系统(我确定Windows,但不会完全一样),我觉得指出你不必使用IP地址。 如果您知道ethN接口,则可以根据networking的configuration情况,简单地使用“eth0”,“eth1”或“eth0:0”。 这可能是更优选的,因为代码将不是特定于一台机器的,并且可能适合更广泛的configuration(例如,群集)。