![]() |
Класс WebRequest в Powershell
Добрый день всем!
Есть текстовый файл со ссылками. Необходимо проверить доступность серверов по ним. В ответе достаточно простого StatusCode, поэтому применил, вроде самый быстрый способ проверки, посредством NET класса WebRequest: Код:
$url = 'http://5.28.31.65:4022/udp/232.1.19.6:1235' Код:
http://tviptv.iptv-channel.ru:8000/streaming/clients_live.php?extension=m3u8&username=valerikmosoyan@gmail.com&password=89183640164&stream=17&type=hls&playlist.m3u8 Но есть некоторые сервера, которые прерывают подключение. К примеру по этой ссылке: Код:
http://heraiptv.vip:25461/QOPuVsib0M/mXi8xlbXG7/3689 Код:
Exception calling "GetResponse" with "0" argument(s): "Удаленный сервер возвратил ошибку: (401) Несанкционированный." Код:
ttp://2.62.216.214:1234/udp/225.54.203.1:5000 Код:
Exception calling "GetResponse" with "0" argument(s): "Сервер нарушил протокол. Section=ResponseStatusLine" При использовании командлета Invoke-WebRequest с методом HEAD возникают те же ошибки. Другие методы неприменимы в данном случае, так как по некоторым ссылкам, вместо ответа, идёт скачивание потока. |
С первым вариантом, скорее всего, надо указывать -Credentials
Второй вариант Код:
function Set-UseUnsafeHeaderParsing |
DJ Mogarych, спасибо большое!
Но, к сожалению, по Вашему варианту на udpxy потоках, типа: Код:
http://2.62.216.214:1234/udp/225.54.203.1:5000 Цитата:
|
Добавьте
Код:
-TimeoutSec 3 Цитата:
|
Цитата:
Хотя по такому методу очень увеличивается время ответа, что при 10-20 линках несущественно, а когда их больше 1000, то да... Придётся добавлять условие для отбора таких ссылок. А с -Credentials в данном случае ничего не получится, требуется указание учётных данных, а где их взять то... |
Время: 23:29. |
Время: 23:29.
© OSzone.net 2001-