Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Расшифровка коротких ссылок

Ответить
Настройки темы
PowerShell - Расшифровка коротких ссылок

Пользователь


Сообщения: 149
Благодарности: 7

Профиль | Отправить PM | Цитировать


Всем доброго времени суток!
Может кто подскажет, есть ли возможность посредством Powershell расшифровать короткие ссылки ?
Например, такие:
Код: Выделить весь код
http://tinyurl.com/yytmg75x/239.195.57.14:1234
В браузере то это без проблем, но нужно расшифровать несколько десятков ссылок.
Можно это сделать через curl.exe (прописана в системной Path)
Код: Выделить весь код
Get-Content J:\Download\123.m3u | ForEach {
(curl.exe -sL --head $_ | Select-String -Pattern 'Location: ([^"]+)' -AllMatches).Matches| 
ForEach-Object {"$($_.Groups[1].Value)"}
}
Но так получаем только ссылки, которые есть в заголовке. На других ошибка.

С помощью чистого Powershell не получится решить такую задачу ?

Отправлено: 15:14, 13-09-2020

 

Ветеран


Сообщения: 608
Благодарности: 206

Профиль | Цитировать


птичка0001, а случилась небольшая неприятность (на стороне Яндекс), которая, как надеюсь, близится к своему разрешению. На время решения проблемы пришлось убрать подпись. Как всё снова заработает, подпись со ссылкой снова появятся. Надеюсь, что произойдёт это скоро, так как накопилось достаточно интересного материала, которым бы хотелось поделиться. Если же что-то пойдёт не так (а такой сценарий событий также не стоит исключать), это также будет отражено в подписи. Спасибо вам за проявленный интерес! Если же у вас имеются ещё вопросы, вы можете задать их непосредственно в мессенджере.

Цитата Foreigner:
Set-MpPreference -DisableRealtimeMonitoring $true
Это равносильно добровольному выстрелу в собственную ногу, если речь не об изолированной среде вроде песочницы.

Цитата Fors1k :
$webRequest.Timeout = 4096
Нехилый таймаут, однако. К слову, у вас try...catch блок уж больно замороченный, да ещё ErrorActionPreference трогаете за интимные места без необходимости. Помимо прочего $webRequest.Abort() в ситуации, когда экземпляр объекта не был создан выдаст трейсбэк. Лучше всё переписать примерно так:
Код: Выделить весь код
function Get-TargetLink {
   [CmdletBinding()]
   param(
      [Parameter(Mandatory, ValueFromPipeline)]
      [ValidateNotNullOrEmpty()]
      [Uri]$Url
   )

   process {
      try {
         $webRequest = ...
      }
      catch { Write-Verbose $_ }
      finally {
         if ($webRequest) { $webRequest.Abort() }
      }
   }
}

Последний раз редактировалось greg zakharov, 15-09-2020 в 17:28.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:45, 15-09-2020 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Fors1k

Пользователь


Сообщения: 96
Благодарности: 58

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
Нехилый таймаут, однако. »
Когда веришь до последнего)

Код: Выделить весь код
$link = 'http://rebrand.ly/d_e_o_0_l_e_g/2',
        'http://zigfreed.ru/Sv2/62.m3u8',
        'http://rebrand.ly/deo_oleg/467'
cls

function Get-TargetLink {[CmdletBinding()]
    param(
        [Parameter ( Mandatory , ValueFromPipeline )]
        [ValidateNotNullOrEmpty()][Uri]$Url
    )
    try {
        $webRequest  = [net.WebRequest]::Create($url)
        $webRequest.Timeout = 2048
        [string]$webRequest.GetResponse().ResponseUri
    }catch  { Write-verbose "$url`n$_" }
    finally {if ($webRequest) { $webRequest.Abort()}}
}

$link|%{Get-TargetLink $_ -Verbose}
Цитата greg zakharov:
Спасибо вам за проявленный интерес! »
Я бы тоже хотел проявить. Будет версия в телеге?

Последний раз редактировалось Fors1k, 15-09-2020 в 19:58. Причина: Verbose added

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:01, 15-09-2020 | #22


Ветеран


Сообщения: 608
Благодарности: 206

Профиль | Цитировать


Fors1k, return можно и опустить, оставив один $res, тем не менее смысл делать это невелик. Почему? В виду определения функции как командлета (CmdletBinding) перехваченное исключение лучше выводить через Write-Verbose (если такая функция будет запущена с ключом -Verbose в хост PowerShell будет выведено сообщение об ошибке, а далее будет исполнен код в finally. Возвратом функции лучше не делать перехваченную ошибку и иже с ней, лучше вернуть нечто существенное, например, значение по умолчанию или некий объект, который при "сцеплении" с другой функцией просто прерывают дальнейшее исполнение. Подобный подход сейчас может показаться несколько замысловатым, однако, на практике, когда дело коснётся классов (если, конечно, коснётся) станут очевидны плюсы такого подхода.
Цитата Fors1k:
Будет версия в телеге?
¯\_(ツ)_/¯
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:28, 15-09-2020 | #23


Пользователь


Сообщения: 132
Благодарности: 28

Профиль | Отправить PM | Цитировать


greg zakharov, спасибо, ясно.
Цитата greg zakharov:
Если же у вас имеются ещё вопросы, вы можете задать их непосредственно в мессенджере.
Я, как и большинство, использую telegram (если не считать корпоративную составляющую). Яндекс мессенджер никогда не использовала и не планирую. Так уж получилось, что за долгое время использования telegram я не задала ни одного вопроса (и по функционированию каналов/чатов в том числе) ни в одном канале или чате. И вряд ли что-то изменится в ближайшем будущем :) Мне как-то хватает поиска в google и SO (для помощи, так и для вопросов). Простите за оффтопик.

Отправлено: 21:22, 16-09-2020 | #24


Ветеран


Сообщения: 608
Благодарности: 206

Профиль | Цитировать


птичка0001, телеграм лично мне не импонирует скрытой телеметрией, о которой разработчики тактично умолчали. Прочие сервисы хотя бы честно оговаривают в соглашениях, что да, можем собирать данные. Скрывать, впрочем, мне нечего, но и желания бросаться в омут также никакого. Скорее всего будет выбрана альтернативная площадка.

Отправлено: 23:30, 17-09-2020 | #25


Аватара для Fors1k

Пользователь


Сообщения: 96
Благодарности: 58

Профиль | Отправить PM | Цитировать


Цитата птичка0001:
Я, как и большинство, использую telegram »
Солидарен. У меня, кроме telegram, ничего даже не установлено)

Отправлено: 10:24, 18-09-2020 | #26



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Расшифровка коротких ссылок

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Расшифровка символа Latinyanin Хочу все знать 3 19-03-2017 11:53
Прочее - [решено] Не корректное или тяжкое открытие ссылок и переходов внутри ссылок в браузерах Илья_Рудоманенко@vk Сетевые технологии 10 16-12-2015 08:05
Разное - Расшифровка Cian2000 Программирование и базы данных 0 18-09-2013 11:27
[решено] Где посмотреть список свойств ссылок (обычных ссылок интернета)? evg64 AutoIt 4 13-09-2009 13:41
Расшифровка clop1000 Хочу все знать 4 27-11-2008 09:38




 
Переход