IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   Windows (https://www.ircforumlari.net/windows/)
-   -   Powershell ile vpn kullanımı. (https://www.ircforumlari.net/windows/1043076-powershell-ile-vpn-kullanimi.html)

Bozkurt- 08 Eylül 2024 12:53

Powershell ile vpn kullanımı.
 
Merhaba;
Vpn kullanımı için uygulama indirmeye son. Çalışan bir proxy listesi oluşturun ve bu betikle istediğiniz gibi gizliliğinizi sağlayın.

Kod:

# Yönetici olarak çalışıp çalışmadığımızı kontrol et
function Test-Admin {
    try {
        $admin = [Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()
        $admin.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
    } catch {
        $false
    }
}

# Yönetici yetkileriyle çalışmıyorsak, betiği yönetici olarak yeniden başlat
if (-not (Test-Admin)) {
    $arguments = "& '" + $myinvocation.mycommand.definition + "'"
    Start-Process powershell -ArgumentList $arguments -Verb RunAs
    exit
}

# Konsol çıktısına renk eklemek için fonksiyonlar
function Write-Green {
    param (
        [string]$Message
    )
    Write-Host $Message -ForegroundColor Green
}

function Write-Red {
    param (
        [string]$Message
    )
    Write-Host $Message -ForegroundColor Red
}

function Write-Cyan {
    param (
        [string]$Message
    )
    Write-Host $Message -ForegroundColor Cyan
}

function Write-Blue {
    param (
        [string]$Message
    )
    Write-Host $Message -ForegroundColor Blue
}
function Write-Yellow {
    param (
        [string]$Message
    )
    Write-Host $Message -ForegroundColor Yellow
}
function Write-White{
    param (
        [string]$Message
    )
    Write-Host $Message -ForegroundColor White
}
function Write-Darkred{
    param (
        [string]$Message
    )
    Write-Host $Message -ForegroundColor Darkred
}
# Program başlığı ve arka plan rengini ayarlama
$host.ui.RawUI.BackgroundColor = "Black"
$host.ui.RawUI.ForegroundColor = "Green"
Clear-Host

Write-Cyan "=================================================================================================================================="
Write-Blue "                                                  Bozkurt Powershell PROXY Aracı                                                "
Write-Cyan "=================================================================================================================================="
Write-Red "==================================================================================================================================="
Write-Red "                                                      KULLANILABİLİR KOMUTLAR                                                    "
Write-Cyan "=================================================================================================================================="
Write-Red "                                                  ac : Proxy'yi aktif hale getirir.                                                "
Write-Red "                                                  kapa : Proxy'yi devre dışı bırakır.                                              "
Write-Red "                                                  degistir : Mevcut IP adresini değiştirir ve yeni bir proxy seçer.                "
Write-Red "                                                  say : Listedeki proxy sayısını gösterir.                                        "
Write-Red "                                                  exit : Proxy ile olan bağlantıyı keser ve betiği kapatır.                        "
Write-Cyan "=================================================================================================================================="
Write-Cyan "=================================================================================================================================="
Write-Darkred "                                                        Y A S A L U Y A R I !                                                "
Write-White "                                                  Betiği Lamerlik yapmak için kullanmayın.                                      "
Write-Cyan "=================================================================================================================================="
Write-Cyan "=================================================================================================================================="

# Proxy IP'lerinin bulunduğu txt dosyasının yolu
$proxyFilePath = "C:\Users\Desktop\vpnb\proxy.txt"


# Test edilecek hedef web sitesi (bu, proxy'nin çalışıp çalışmadığını test eder)
$testUrl = "
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
Son çalışan proxy'yi saklayan değişken
$lastWorkingProxy = $null

# Proxy'yi test eden fonksiyon
function Test-Proxy {
    param (
        [string]$proxy
    )

    try {
        # Proxy'yi parse et
        $proxyType, $proxyAddress = if ($proxy -match "^(http|socks4|socks5)://(.+)$") {
            $matches[1], $matches[2]
        } else {
            "http", $proxy
        }

        # WebClient oluştur
        $webClient = New-Object System.Net.WebClient
       
        # Proxy ayarlarını yapılandır
        $proxyUrl = if ($proxyType -eq "http") { "http://$proxyAddress" } else { $proxyAddress }
        $webClient.Proxy = New-Object System.Net.WebProxy($proxyUrl, $true)
        $webClient.DownloadString($testUrl) | Out-Null

        Write-Darkred "Proxy çalışıyor: $proxy"
        return $true
    } catch {
        Write-Red "Proxy başarısız: $proxy"
        Write-Red "Hata ayrıntıları: $_"
        return $false
    }
}

# Proxy ayarlarını yapılandıran fonksiyon
function Set-Proxy {
    param (
        [string]$proxyAddress
    )

    try {
        # Proxy ayarlarını yapılandır
        Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -Name ProxyEnable -Value 1
        Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -Name ProxyServer -Value $proxyAddress

        Write-green "Proxy ayarlandı: $proxyAddress"
    } catch {
        Write-Red "Proxy ayarlarında hata: $_"
    }
}

# Proxy ayarlarını kapatan fonksiyon
function Disable-Proxy {
    try {
        # Proxy'yi devre dışı bırak
        Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -Name ProxyEnable -Value 0
        Write-Green "Proxy devre dışı bırakıldı."
    } catch {
        Write-Red "Proxy kapatmada hata: $_"
    }
}

# Proxy listesini güncelleyen fonksiyon
function Update-ProxyList {
    param (
        [string]$proxyToRemove
    )

    try {
        # TXT dosyasından proxy IP'lerini okuma
        if (Test-Path $proxyFilePath) {
            $proxyList = Get-Content -Path $proxyFilePath
        } else {
            Write-Red "Proxy dosyası bulunamadı: $proxyFilePath"
            exit
        }

        # Çalışmayan proxy'yi liste dosyasından çıkar
        $updatedProxyList = $proxyList | Where-Object { $_ -ne $proxyToRemove }
        $updatedProxyList | Set-Content -Path $proxyFilePath

        Write-Green "Proxy listesi güncellendi: $proxyToRemove çalışmadığı için listeden kaldırıldı."
    } catch {
        Write-Red "Proxy listesi güncellenirken hata: $_"
    }
}

# Mevcut proxy'yi değiştiren fonksiyon (rastgele proxy seçer ve çalışmayanları listeden siler)
function Change-Proxy {
    try {
        # TXT dosyasından proxy IP'lerini okuma
        if (Test-Path $proxyFilePath) {
            $proxyList = Get-Content -Path $proxyFilePath
        } else {
            Write-Red "Proxy dosyası bulunamadı: $proxyFilePath"
            exit
        }

        # Mevcut proxy'yi devre dışı bırak
        if ($lastWorkingProxy) {
            Write-Yellow "Mevcut proxy'nin listeden çıkarılması..."
            Disable-Proxy
            Update-ProxyList -proxyToRemove $lastWorkingProxy
            $lastWorkingProxy = $null
        }

        # Proxy listesini rastgele sıraya göre yeniden düzenleyen kısım.
        $randomizedProxyList = $proxyList | Get-Random -Count $proxyList.Count

        # Yeni bir çalışan proxy bulana kadar deneme
        $proxyChanged = $false
        foreach ($proxy in $randomizedProxyList) {
            if (Test-Proxy -proxy $proxy) {
                # Çalışan proxy'yi bulduktan sonra ayarla ve döngüden çık
                Set-Proxy -proxyAddress $proxy
                $global:lastWorkingProxy = $proxy
                $proxyChanged = $true
                break
            } else {
                # Çalışmayan proxy'yi listeden sil
                Update-ProxyList -proxyToRemove $proxy
                Get-ProxyCount -filePath $proxyFilePath
            }
        }

        if (-not $proxyChanged) {
            Write-Red "Çalışan bir proxy bulunamadı."
        }
    } catch {
        Write-Red "Proxy değiştirme sırasında hata: $_"
    }
}

# Proxy listesindeki toplam proxy sayısını döndüren fonksiyon
function Get-ProxyCount {
    param (
        [string]$filePath
    )

    try {
        if (Test-Path $filePath) {
            $proxyList = Get-Content -Path $filePath
            $proxyCount = $proxyList.Count
            Write-Cyan "Listedeki proxy sayısı: $proxyCount"
        } else {
            Write-Red "Proxy dosyası bulunamadı: $filePath"
        }
    } catch {
        Write-Red "Bir hata oluştu: $_"
    }
}

# Sürekli çalışma döngüsü
while ($true) {
    # Aç/Kapa/Değiştir işlemi için kullanıcıdan komut alan kısım.
    $action = Read-Host "Listedeki Komutlardan Birini Girin."

    try {
        if ($action -eq "ac") {
            # Proxy'yi etkinleştirme
            Get-ProxyCount -filePath $proxyFilePath
            Change-Proxy
        } elseif ($action -eq "kapa") {
            # Proxy ayarlarını kapatma
            Disable-Proxy
        } elseif ($action -eq "degistir") {
            # Mevcut proxy'yi değiştirme
            Disable-Proxy
            Change-Proxy
        } elseif ($action -eq "say") {
            # Listedeki proxy sayısını öğrenme
            Get-ProxyCount -filePath $proxyFilePath
        } elseif ($action -eq "exit") {
            # Çıkış komutu: Proxy'yi kapat ve programdan çık
            Disable-Proxy
            Write-Green "Programdan çıkılıyor..."
            break
        } else {
            Write-Red "Geçersiz komut. Listede kullanılabilir komutlar yazıyor.."
        }
    } catch {
        Write-Red "Bir hata oluştu: $_"
    }
}

Kodu bir metin belgesine yapıştırın. .ps1 uzantısı ile kaydedin. Kod içerisindeki proxy dosyanızın konumunu düzeltin. Proxy.txt içinde ip:port şeklinde proxyler olmalıdır.
ac : betiği tetikler ve çalışan bir proxyi test ederek ona bağlanır.
degistir : listeden yeni bir proxy seçer ona bağlanır.
kapa : vpn kapatır.
exit : betiği kapatır.
say : listedeki proxy sayısını gösterir.

Betik listedeki proxyleri tek tek deneyerek çalışan proxy'e bağlanır. Çalışmayan proxyleri listeden siler.


Not : Kod kısmında kırmızı ile işaretli yeri proxy listenizin konumu ile değiştirin.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 16:23.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk