2015-04-28 39 views
2

我想使用短信網關的應用程序稱爲SMSGateway與HTTP頭請求使用捲曲如下;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

你好像給一個ip地址是不是服務器訪問?它不斷嘗試連接,但無法達到目標。 –

+0

但它從我的本地運行時的作品系統 – user2444559

+0

它在當地工作,因爲你的本地系統能夠達到你的IP地址,但服務器無法找到IP,因​​爲它是一個遠程服務器。 –

回答

0

我想我已得到別人的最好可能的答案誰說

「 好了,從遠程連接到你的公網IP,當你連接到路由器,你必須做的是將連接從路由器重定向到內部服務器IP,這被定義爲網絡地址轉換(NAT)。

實際上在你的路由器中應該有一個接口您可以定義內部IP和端口,以便來自遠程的請求如下所示:

REMOTE_REQUEST ===> [ROUTER]PUBLIC_IP:PORT ===> [SMS SERVER]INTERNAL_IP:PORT 

另一種解決方案是設置SMS服務器在非軍事區,並直接將其暴露在互聯網:

http://en.wikipedia.org/wiki/DMZ_%28computing%29 

檢查你的路由器的文檔,如果你需要幫助,讓我們知道了型號和版本。 「

整個線程是這裏https://www.daniweb.com/web-development/php/threads/495303/http-header-request-does-not-connect-from-remote-server