我一直在尝试使用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!';
}
}
在localhost上有效,但在实时网站上无效。
[我当时在想,非本地主机不可能与本地主机环境通信,但我不确定。
是否可以使我的脚本将数据发送到本地IP?
编辑:经过深思,是否必须切换到JavaScript才能正常工作?
为了使远程服务器与您的本地基础结构进行通信,您需要通过外部IP将其公开。因此,您需要:
1)设置路由器上端口的路由(例如将端口12800传递到本地网络中的特定IP-因此,例如,如果您的外部IP为83.123.123.123,则路由器将通过发送到83.123的所有流量传递)。 123.123:12800到192.168.2.10:12800。通常,此类设置在以下位置称为“路由”或“端口转发”或“虚拟服务器”路由器的设置。
2)学习您的外部IP。您可以执行以下操作:https://www.myexternalip.com/
3)如果您的IP是动态的,它可能会不时更改。为了避免出现问题,您可以在其中一个受欢迎的提供商中设置动态DNS条目-例如no-ip.com。