我正在尝试使用一个名为SMSGateway的sms网关应用程序,使用curl进行http标头请求,如下所示;
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,"http://182:70.76.188:9090/sendsms?phone=$phone&text=$message1&password=xxxxxxxx");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 10000);
curl_setopt($curl_handle, CURLOPT_TIMEOUT,50000);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:36.0) Gecko/20100101 Firefox/36.0');
$query = curl_exec($curl_handle);
if($query){echo "Message Sent to $phone !<br>";}else{echo "Message Not Sent to $phone !<br>";echo 'Curl error: ' . curl_error($curl_handle)."<br>";}
curl_close($curl_handle);
这在我的本地系统上工作得非常好,但是当从服务器执行时它会超时......
我需要知道出了什么问题......这是卷曲问题吗?我应该使用file_get_contents吗?实际上我确实尝试过file_get_contents ......也没有用..
答案 0 :(得分:0)
我想我得到了一个说
的人的最佳答案” 好的,当您从远程连接到公共IP时,您正在连接到路由器,您需要做的是将连接从路由器重定向到内部服务器IP,这被定义为网络地址转换(NAT)。
在您的路由器中实际应该有一个接口,您可以在其中定义内部IP和端口,以便从远程进行的请求如下所示:
REMOTE_REQUEST ===> [ROUTER]PUBLIC_IP:PORT ===> [SMS SERVER]INTERNAL_IP:PORT
另一种解决方案是在DMZ中设置SMS服务器并将其直接暴露给互联网:
http://en.wikipedia.org/wiki/DMZ_%28computing%29
检查路由器的文档,如果需要帮助,请告诉我们型号和版本。 “