我有一个有两个不同IP的服务器.我需要从第一个IP发送奇怪的卷曲请求,甚至从第二个IP发送.如何选择传出IP地址?
我的PHP脚本是这样的:
$curlh = curl_init($url);
curl_setopt($curlh, CURLOPT_USERAGENT, $uagent);
curl_setopt($curlh, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curlh);
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
Dan*_*llo 54
您可能想尝试设置CURLOPT_INTERFACE选项:
curl_setopt($curlh, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx");
Run Code Online (Sandbox Code Playgroud)
CURLOPT_INTERFACE:要使用的传出网络接口的名称.这可以是接口名称,IP地址或主机名.
编辑:修复示例,正如@Michael Hart指出的在另一个答案中指出的那样.
小智 26
由于我还不能回复,只想添加Daniel Vassallo的回答.虽然他是正确的,但他的榜样却不是.
CURLOPT_INTERFACE是一个常量,不能放在引号内.这可能会导致一些人可能会复制和粘贴一些混淆,只是发现它不起作用.正确的代码是:
curl_setopt($curlh, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx");
Run Code Online (Sandbox Code Playgroud)
此外,对于Linux系统(我确定Windows,但它不会完全相同),我想指出你不必使用IP地址.如果您知道ethN接口,则可以使用"eth0","eth1"或"eth0:0",具体取决于网络的配置方式.这可能是更优选的,因为代码不是特定于1台机器,并且可能适合更广泛的配置(例如,集群).
| 归档时间: |
|
| 查看次数: |
34624 次 |
| 最近记录: |