12.09.2024

Powershell ile download ve headers

Bir adresimiz var

www.hedef.com

gibi. Bu adresten

dosya.zip

adında bir dosya indirmem gerek. Bu dosyayı indirmek için

iwr -uri www.hedef.com/dosya.zip -out dosya.zip

yazdığımda site referer istediğin söyleyip indirmemi engelliyor. Bunun için önce web sitesine bir kere bağlanıp header'i oluşturacak verileri çektim.

$uri = "www.hedef.com"
$dosya = "dosya.zip"
$uas = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0"
$fullurl=$uri.TrimEnd("/") + "/" + $dosya.TrimStart("/")
$ilk_baglanti = iwr -uri $fullurl -useragent $uas

Daha sonra bir $objHeader nesnesi oluşturdum (hepsi gerekli olmayabilir), aşağıdaki gibi

$objHeaders = @{
"Host" = $uri
"Referer" = $uri
"User-Agent" = $uas
"Accept" = $ilk_baglanti.Headers["Content-type"]
"Accept-Language" = "tr,en;q=0.7,en-US;q=0.3"
"Accept-Encoding" = "gzip, deflate"
"DNT" = "1"
# "Connection" = "keep-alive"
"Upgrade-Insecure-Requests" = "1"
"Cookies" = $ilk_baglangi.BaseResponse.Cookies
}

Bundan sonra indirme başarılı oldu

iwr -uri $fullurl -OutFile $dosya -Headers $objHeaders -Useragent $uas

Aslında tüm headers nesnesini oluşturmaya gerek yokmuş. Sadece referer'ı belirtmek yetiyormuş:

iwr -uri $fullurl -Outfile $dosya -Headers @{"Referer"="www.hedef.com"] -UserAgent $uas

Hiç yorum yok: