Задать вопрос
@RSL-1

Как на php получить xml файл с порта 23456 «85.198.128.170:23456»?

Доброго времени суток.
Не удается получить файл.
Сервер отсекает все подключения, но из файл открывается нормально. Так же прекрасно работает с локального сервера OpenServer.
Загружаю файл через
file_get_contents()
Пробовал Curl
$feed = 'http://85.198.128.170:23456/base/hs/catalog/vita_trade/feed.xml'; 

$curl = curl_init($feed);

// установка URL-адреса, на который нужно выполнить запрос
curl_setopt($curl, CURLOPT_URL, $feed);

// установка параметров соединения
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'); 
curl_setopt($curl, CURLOPT_PORT, 23456);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_COOKIESESSION, TRUE);
curl_setopt($curl, CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie_prod.txt');
curl_setopt($curl, CURLOPT_COOKIEJAR, dirname(__FILE__).'/cookie_prod.txt');
curl_setopt($curl, CURLOPT_SSH_COMPRESSION, true);

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($curl, CURLOPT_REFERER, 'https://www.google.com/');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
	'Content-Type: application/json',
	'Accept: application/xml',
	'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
	'Accept-Language: en-US,en;q=0.5',
	'Accept-Encoding: gzip, deflate',
));

// выполнение запроса
$response = curl_exec($curl);

// проверка наличия ошибок
if ($response === false) {
    $error = curl_error($curl);
    echo "Ошибка: $error\n";
} else {
    echo "Ответ: $response\n";
}

// закрытие соединения
curl_close($curl);

Ошибка: Failed to connect to 85.198.128.170 port 23456 after 1057 ms: Connection refused

Порт 23456 поменять нельзя.
Подскажите, пожалуйста, может кто сталкивался.
  • Вопрос задан
  • 74 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Значит кто-то не пропускает коннект на этот порт, или сам сервер своим firewall-ом, или удалённый сервер. Тестируйте консольной командой telnet 85.198.128.170 23456. Если коннекта нет и в консоли - ищите блокировку.
Ответ написан
Комментировать
karabanov
@karabanov
Системный администратор
Connection refused в 99% случаев порт никто не слушает и 1% фаирвол настроен так, чтобы явно сбрасывать соединение.
Надо проверить что порт 23456 действительно слушается целевым сервисом, а потом проверить настройки фаирвола.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы