Я пытаюсь использовать приложение SMS-шлюза для Android под названием SMSGateway с запросом заголовка http, используя curl, как показано ниже;
$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 … тоже не работал ..
Я думаю, что получил лучший ответ от того, кто говорит
«Хорошо, при подключении к общедоступному IP-адресу от удаленного, который вы подключаете к маршрутизатору, вам нужно перенаправить соединение с маршрутизатора на IP-адрес внутреннего сервера, это определяется как преобразование сетевых адресов (NAT).
На практике в вашем маршрутизаторе должен быть интерфейс, в котором вы можете определить внутренний IP-адрес и порт, чтобы запрос, поступающий с удаленного компьютера, работал следующим образом:
REMOTE_REQUEST ===> [ROUTER]PUBLIC_IP:PORT ===> [SMS SERVER]INTERNAL_IP:PORT
Другое решение состоит в том, чтобы установить сервер SMS в DMZ и выставить его непосредственно в Интернет:
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
Других решений пока нет …