PHP cURL - 将数据从 www 发送到本地 IP
PHP cURL - Send Data From www to Local IP
我一直在尝试使用 cURL 将数据发送到本地 IP。此 IP 正在等待接收传入数据。
为此,我使用了以下代码:
if(isset($_GET['post'])) {
$data = array(
'type' => 'direct',
'packages' => []
);
$curl = curl_init('http://192.168.2.10:12800/api/install');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
if (curl_errno($curl)) {
$error_msg = curl_error($curl);
}
echo curl_exec($curl);
if (isset($error_msg)) {
echo $error_msg;
} else {
echo 'OK!';
}
}
在本地主机上可以,但在实时网站上不能。
我在想非本地主机可能无法与本地主机环境通信,但我不确定。
是否可以让我的脚本将数据发送到本地 IP?
编辑:事后想想,我是否必须切换到 JavaScript 才能正常工作?
为了让远程服务器与您的本地基础设施通信,您需要通过外部 IP 公开它。所以你需要:
1) 在您的路由器上设置一个端口的路由(例如将端口 12800 传递到您本地网络中的特定 IP - 例如,如果您的外部 IP 是 83.123.123.123,那么路由器将传递任何发送的流量到 83.123.123.123:12800 到 192.168.2.10:12800。通常这样的设置在中称为 "routing" 或 "port forwarding" 或 "virtual servers"
路由器的设置。
2) 学习你的外网ip。例如,您可以通过以下方式做到这一点:https://www.myexternalip.com/
3) 如果您的 IP 是动态的,它可能会不时发生变化。为避免出现问题,您可以在其中一个流行的提供商中设置动态 DNS 条目 - 例如 no-ip.com。
我一直在尝试使用 cURL 将数据发送到本地 IP。此 IP 正在等待接收传入数据。
为此,我使用了以下代码:
if(isset($_GET['post'])) {
$data = array(
'type' => 'direct',
'packages' => []
);
$curl = curl_init('http://192.168.2.10:12800/api/install');
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
if (curl_errno($curl)) {
$error_msg = curl_error($curl);
}
echo curl_exec($curl);
if (isset($error_msg)) {
echo $error_msg;
} else {
echo 'OK!';
}
}
在本地主机上可以,但在实时网站上不能。
我在想非本地主机可能无法与本地主机环境通信,但我不确定。
是否可以让我的脚本将数据发送到本地 IP?
编辑:事后想想,我是否必须切换到 JavaScript 才能正常工作?
为了让远程服务器与您的本地基础设施通信,您需要通过外部 IP 公开它。所以你需要:
1) 在您的路由器上设置一个端口的路由(例如将端口 12800 传递到您本地网络中的特定 IP - 例如,如果您的外部 IP 是 83.123.123.123,那么路由器将传递任何发送的流量到 83.123.123.123:12800 到 192.168.2.10:12800。通常这样的设置在中称为 "routing" 或 "port forwarding" 或 "virtual servers" 路由器的设置。
2) 学习你的外网ip。例如,您可以通过以下方式做到这一点:https://www.myexternalip.com/
3) 如果您的 IP 是动态的,它可能会不时发生变化。为避免出现问题,您可以在其中一个流行的提供商中设置动态 DNS 条目 - 例如 no-ip.com。