|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Класс WebRequest в Powershell |
|
PowerShell - Класс WebRequest в Powershell
|
Старожил Сообщения: 226 |
Добрый день всем!
Есть текстовый файл со ссылками. Необходимо проверить доступность серверов по ним. В ответе достаточно простого StatusCode, поэтому применил, вроде самый быстрый способ проверки, посредством NET класса WebRequest: $url = 'http://5.28.31.65:4022/udp/232.1.19.6:1235' $a = ([System.Net.WebRequest]::Create($url)).GetResponse() $a.StatusCode 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://mu01.v5iptv.com:8880/BL12MA000587/91417327/2985 http://5.28.31.65:4022/udp/232.1.19.6:1235 http://37.49.181.239:4022/udp/238.1.1.1:1234 http://193.201.98.123:7000/play/a02p Но есть некоторые сервера, которые прерывают подключение. К примеру по этой ссылке: сервер отдаёт: Exception calling "GetResponse" with "0" argument(s): "Удаленный сервер возвратил ошибку: (401) Несанкционированный." At I:\Проекты\Cecker\Untitled266.ps1:2 char:1 + $a = ([System.Net.WebRequest]::Create($url)).GetResponse() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : WebException ошибка: Exception calling "GetResponse" with "0" argument(s): "Сервер нарушил протокол. Section=ResponseStatusLine" At I:\Проекты\Cecker\Untitled266.ps1:2 char:1 + $a = ([System.Net.WebRequest]::Create($url)).GetResponse() + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : WebException При использовании командлета Invoke-WebRequest с методом HEAD возникают те же ошибки. Другие методы неприменимы в данном случае, так как по некоторым ссылкам, вместо ответа, идёт скачивание потока. |
|
Отправлено: 16:48, 13-01-2020 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать С первым вариантом, скорее всего, надо указывать -Credentials
Второй вариант function Set-UseUnsafeHeaderParsing { param( [Parameter(Mandatory,ParameterSetName='Enable')] [switch]$Enable, [Parameter(Mandatory,ParameterSetName='Disable')] [switch]$Disable ) $ShouldEnable = $PSCmdlet.ParameterSetName -eq 'Enable' $netAssembly = [Reflection.Assembly]::GetAssembly([System.Net.Configuration.SettingsSection]) if($netAssembly) { $bindingFlags = [Reflection.BindingFlags] 'Static,GetProperty,NonPublic' $settingsType = $netAssembly.GetType('System.Net.Configuration.SettingsSectionInternal') $instance = $settingsType.InvokeMember('Section', $bindingFlags, $null, $null, @()) if($instance) { $bindingFlags = 'NonPublic','Instance' $useUnsafeHeaderParsingField = $settingsType.GetField('useUnsafeHeaderParsing', $bindingFlags) if($useUnsafeHeaderParsingField) { $useUnsafeHeaderParsingField.SetValue($instance, $ShouldEnable) } } } } Set-UseUnsafeHeaderParsing -Enable (Invoke-WebRequest 'http://2.62.216.214:1234/udp/225.54.203.1:5000').StatusDescription |
------- Отправлено: 20:24, 13-01-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 226
|
Профиль | Отправить PM | Цитировать DJ Mogarych, спасибо большое!
Но, к сожалению, по Вашему варианту на udpxy потоках, типа: вместо ответа идёт скачивание потока. Цитата DJ Mogarych:
|
|
Отправлено: 23:34, 13-01-2020 | #3 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать Добавьте
Идёт скачивание потока, но потом выдаётся результат. Цитата Uragan66:
|
|
------- Отправлено: 08:44, 14-01-2020 | #4 |
Старожил Сообщения: 226
|
Профиль | Отправить PM | Цитировать Цитата DJ Mogarych:
Хотя по такому методу очень увеличивается время ответа, что при 10-20 линках несущественно, а когда их больше 1000, то да... Придётся добавлять условие для отбора таких ссылок. А с -Credentials в данном случае ничего не получится, требуется указание учётных данных, а где их взять то... |
||
Отправлено: 10:53, 14-01-2020 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [блог] Игнорирование проверки сертификата для Invoke-WebRequest/Invoke-RestMethod | Kazun | Скриптовые языки администрирования Windows | 0 | 07-09-2017 05:30 | |
PowerShell - Invoke-WebRequest NoProxy | Elven | Скриптовые языки администрирования Windows | 2 | 18-05-2017 16:43 | |
PowerShell - [блог] Отправка Post запроса используя Invoke-WebRequest | Kazun | Скриптовые языки администрирования Windows | 0 | 04-09-2016 16:30 | |
C/C++ - Реализовать класс Goods и класс Money | lixod96 | Программирование и базы данных | 1 | 15-10-2014 12:14 | |
C/C++ - класс вектор | root_777 | Программирование и базы данных | 8 | 12-12-2007 00:40 |
|