PowerShell - [решено] Расшифровка коротких ссылок

Аватара пользователя
Uragan66

PowerShell - [решено] Расшифровка коротких ссылок

Сообщение Uragan66 »

Всем доброго времени суток!

Может кто подскажет, есть ли возможность посредством 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 не получится решить такую задачу ?
Аватара пользователя
greg zakharov

Re: PowerShell - [решено] Расшифровка коротких ссылок

Сообщение greg zakharov »

Uragan66, в curl предусмотрена возможность извлечения так называемого эффективного URL (конечной точки запроса). Выглядит это примерно так:



Код:

Код: Выделить всё

curl -w "%{url_effective}" -o nul -sIL https://goo.gl/q76cgB

Что касается PowerShell[/i], в разных версиях модель запросов может различаться. В седьмой версии, например, получить URL из пожатой ссылки можно следующим образом:



Код:

Код: Выделить всё

"$((Invoke-WebRequest https://goo.gl/q76cgB).BaseResponse.RequestMessage.RequestUri)"

nmap[/i], к слову, также способен "извлечь" эффективный URL из пожатой ссылки.


Цитата Uragan66:



Но так получаем только ссылки, которые есть в заголовке. На других ошибка.



Покажите сам текстовик.
Аватара пользователя
Fors1k

Re: PowerShell - [решено] Расшифровка коротких ссылок

Сообщение Fors1k »

Код:

Код: Выделить всё

$link = 'http://zigfreed.ru/Sv2/62.m3u8'
"$((Iwr -me h $link).BaseResponse.ResponseUri)"
Аватара пользователя
greg zakharov

Re: PowerShell - [решено] Расшифровка коротких ссылок

Сообщение greg zakharov »

птичка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() }
      }
   }
}
Аватара пользователя
Foreigner

Re: PowerShell - [решено] Расшифровка коротких ссылок

Сообщение Foreigner »

Цитата greg zakharov:



Покажите сам текстовик
PowerShell - [решено] Расшифровка коротких ссылок




ссылки могут быть разные, это тв потоки с различных сервисов.

Пример:



Код:

Код: Выделить всё

https://rebrand.ly/deo_/OLEG/2
http://rebrand.ly/deooleg/352
http://tinyurl.com/y3ks3hy8
http://zigfreed.ru/Sv2/741.m3u8
http://zigfreed.ru/Sv2/4.m3u8
http://zigfreed.ru/Sv2/18.m3u8

На двух первых ссылках мой код "спотыкается"

Ваш код с curl их тоже не расшифровывает.

А код для седьмой версии PowerShell срабатывает отлично со всеми ссылками. За что Вам огромное спасибо. Этот код работает на 6-й и 7-й версиях. На 5.1 срабатывает, ошибок нет, но вывод пустой.

Для 5.1 получится подобная модель запроса ?




Цитата Foreigner:



Антивирус взбунтовался против любых коротких ссылок
PowerShell - [решено] Расшифровка коротких ссылок




у меня нормально по этому поводу...

Но чисто Invoke-WebRequest для моей задачи не подходит. По некоторым ссылкам он просто возвращает развёрнутый плейлист, а не одну ссылку.
Аватара пользователя
Uragan66

Re: PowerShell - [решено] Расшифровка коротких ссылок

Сообщение Uragan66 »

Foreigner, Windows Defender? А вы не пробовали задавать запрос так:



Код:

Код: Выделить всё

Invoke-WebRequest -Uri https://goo-gl.ru/6zTJ

?




Цитата Uragan66:



Для 5.1 получится подобная модель запроса ?



Да. По крайней мере насколько помню, Invoke-WebRequest[/i] в 5.1 также работал.




Цитата Uragan66:



Ваш код с curl их тоже не расшифровывает.



Код с curl ничего не расшифровывает. Это называется получение эффективного адреса. Виндовый curl сильно кастрирован по части функциональности.
Аватара пользователя
Foreigner

Re: PowerShell - [решено] Расшифровка коротких ссылок

Сообщение Foreigner »

Цитата Uragan66:



Для 5.1 получится подобная модель запроса ?
PowerShell - [решено] Расшифровка коротких ссылок






Код:

Код: Выделить всё

"$((iwr tinyurl.com/anf54v).BaseResponse.ResponseUri)"
Вложения

[Расширение png было запрещено, вложение больше недоступно.]

Аватара пользователя
greg zakharov

Re: PowerShell - [решено] Расшифровка коротких ссылок

Сообщение greg zakharov »

Foreigner, Windows Defender? А вы не пробовали задавать запрос так:

Код:

Код: Выделить всё

Invoke-WebRequest -Uri https://goo-gl.ru/6zTJ

?

Цитата Uragan66:

Для 5.1 получится подобная модель запроса ?

Да. По крайней мере насколько помню, Invoke-WebRequest[/i] в 5.1 также работал.

Цитата Uragan66:

Ваш код с curl их тоже не расшифровывает.

Код с curl ничего не расшифровывает. Это называется получение эффективного адреса. Виндовый curl сильно кастрирован по части функциональности.
Аватара пользователя
Fors1k

Re: PowerShell - [решено] Расшифровка коротких ссылок

Сообщение Fors1k »

Оказалось не всё так просто...

К примеру, ссылка:



Код:

Код: Выделить всё

http://zigfreed.ru/Sv2/62.m3u8

в реальности udp поток



Код:

Код: Выделить всё

http://85.14.32.3:8800/udp/239.10.10.130:5000

и что в браузере, что скриптом идёт бесконечное скачивание потока...

Как такие короткие ссылки отличить от других, непонятно...
Ответить

Вернуться в «Скриптовые языки администрирования Windows»