从专用 IP 而不是共享 IP 发送 PHP 请求

从专用 IP 而不是共享 IP 发送 PHP 请求

我已经为网站设置了专用 IP(使用 directadmin),但所有传出的 php 请求都是从服务器的共享 IP 发送的。以下代码的结果始终是共享 IP。

$a = file_get_contents("http://mxtoolbox.com/WhatIsMyIP/");
print $a;

我需要从专用 IP 发送请求,因为我的支付网关只接受来自该 IP 的请求。

我是否需要添加 iptables 规则来从专用 IP 发送所有请求,或者有更好的方法?

答案1

通过专用 IP 设置到支付处理器的路由。该ip route add命令是您的好朋友。

答案2

这应该在 StackOverflow 上。您需要为您的套接字创建一个上下文。

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

$context = stream_context_create($opts);
$a = file_get_contents("http://mxtoolbox.com/WhatIsMyIP/", false, $context);
print $a;

在此示例中,这将绑定到 IP 10.10.1.1。端口 0 用于允许操作系统选择端口。

否则,您必须更改所有流量的默认路由或确定您尝试访问的站点的 IP 地址。如果站点使用分布式网络或更改其地址,后者可能不可靠。

相关内容