Forwarding Port PowerShell For Utorrent / Qbittorrent / Other برای API جدید – PIA

Forwarding Port PowerShell For Utorrent / Qbittorrent / Other برای API جدید – PIA

#Version 3.00 این Utorrent و qBittorent را به یک اسکریپت ترکیب می کند و از API جدید استفاده می کند.
3.01 رفع کار در ویندوز 10 ، هنوز هم روی 7+
3.02 کار می کند. used
3.03 گزینه های اضافه شده برای رمزگذاری Legacy ، Standard و Strong
3.10 تشخیص بهتر هنگام اتصال vpn ، تماشا کنید اگر آدرس IP تغییر کند ، در صورت درخواست پورت جدید ، گزینه qbittorrent را برای جستجوی qbittorrent متوقف شده اضافه کنید. ثابت برای سربرگ ارجاع برای qbittorrent 3.3.14 اضافه شده است.
3.11 مسئله صفحه را برطرف کنید ، متغیرهای قدیمی را که دیگر استفاده نمی شود پاک کنید.
3.12 حتی اگر هیچ برنامه کاربردی اجرا نشود ، از درگاه درخواست می کند.
3.13 پورت برنامه را بروزرسانی می کند. اگر قبلاً به دلایلی نتوانست ، به عنوان مثال در حال اجرا نباشد.
3.14 پشتیبانی بهتر از ویندوز 10 ، اگر ویژگی های پیشرفته را فعال کنید ، اسکریپت سریعاً به عنوان سرپرست کار می کند.
3.15 صحیح هجی ، نسخه لیست در نوار عنوان ، اضافه شد. به این آدرس وب نظر دهید.

3.2. عدم موفقیت در ورود به سیستم برای qbitorrent برای 4.1

3.3 از API جدید Qbittorrent استفاده کنید

 # اطلاعات بیشتر در https://www.privateinternetaccess.com/forum/discussion/23542/ موفق19459002faq=Ver = "نسخه 3.3" 
$ WEBGUI_USER_ut = "admin" # نام کاربری برای Utorrent
$ WEBGUI_PASS_ut = "" #password برای Utorrent
$ WEBGUI_PORT_ut = 801 #port number for Utorrent
$ WEBGUI_USER_torin " ] $ WEBGUI_PASS_qb = "" #password for qBittorrent
$ WEBGUI_PORT_qb = 802 #port number for Qbittorrent
$ Checkqbittorentstalled = $ True # بررسی کنید آیا qbittorrent متوقف شده است
15 Checktbittorent $ checktime = 60 # چند بار بررسی کنید که آیا هنوز در ثانیه وصل شده است پیش فرض 60
$ انتظار زمان = 0 # مدت طولانی قبل از شروع اسکریپت صبر کنید ، اگر به زمان لازم برای اتصال vpn نیاز دارید 0
$ ENABLEAUTOCHECK = $ True # روی $ True تنظیم شود تا مجدداً سرویس را برای اتصال به vpn
$ EnabledAdvanceRo انجام دهید. uting = $ True # صحیح روی $ true تنظیم کنید تا وقتی از آدرس IP استاتیک استفاده کنید و هیچ dns یا دروازه ای به این شبکه اختصاص نیافته باشد
# EnabledAdvanceRouting فقط درصورتی کار می کند که $ Enableautocheck درست باشد $ true
$ disableportforwarduser = $ false # اگر نمی خواهید حمل و نقل پورت را فعال کنید
$ defaultgateway = "10.23.179.3" # بخشی از مسیریابی Advance ، آن را به آدرس IP روتر خود تغییر دهید
$ Applist = @ ()
$ Applistnum = 1 لیست برنامه های #Default برای انتخاب 0 = utorrent ، 1 = qBittorrent ، 2 = other
$ Applist + =، @ ("uTorrent"، "fnutorrent") # اولین varaible نام برنامه است ، دوم عملکردی است که با آن تماس می گیرید
$ Applist + =، @ ("qBittorrent"، "fnqbittorrent")
$ Applist + =، @ ("" Other "،" fnother ")
$ PIAservernum = 0 #default $ PIAserver شما می خواهید وصل شوید برای فعال کردن AdvanceRouting
$ PIAserver = @ () # 10 سرور لیست کنید تا به آن متصل شوید.
$ PIAserver + =، @ ("ca-toronto.privateinternetaccess.com" ، $ true) متغیر اول آدرس سرور است ، دوم آن را sup حمل و نقل بندر بندر
$ PIAserver + =، @ ("ca.privateinternetaccess.com" ، $ true)
$ PIAserver + =، @ ("israel.privateinternetaccess.com" ، $ true)
$ PIAserver + =، @ ("nl.privateinternetaccess.com" ، $ true)
$ PIAserver + =، @ ("" swiss.privateinternetaccess.com "، $ true)
$ PIAserver + =، @ (" Swedenen. privateinternetaccess.com "، $ true)
$ PIAserver + =، @ (" "uk-london.privateinternetaccess.com"، $ false)
$ PIAserver + =، @ ("us-california.privateinternetaccess.com" ، $ false)
$ PIAserver + =، @ ("us-midwest.privateinternetaccess.com"، $ false)
$ PIAserver + =، @ ("" us-east.privateinternetaccess.com "، $ false)
$ PIAportsnum = 0 # 0 برای UDP ، 1 برای TCP ، پیش فرض 0
$ PIAprotocal = @ ("udp" ، "tcp")
$ PIAStrongEncryption = 1 # 2 برای رمزگذاری قوی تنظیم شده
$ PIAcipher = @ () # درگاه پورت ، درگاه tcp ، پیپر ، گواهی ، لیست لغو ، auth ، توضیحات
$ PIAcipher + =، @ (1194،443، "bf-cbc"، "ca.crt "،" crl.pem "،" sha1 "،" رمزگذاری میراث tion ") #Legacy encryption
$ PIAcipher + =، @ (1198،502،" aes-128-cbc "،" ca.rsa.2048.crt "،" crl.rsa.2048.pem "،" sha1 "،" رمزگذاری استاندارد ") رمزگذاری # استندارد
$ PIAcipher + =، @ (1197،501 ،" aes-256-cbc "،" ca.rsa.4096.crt "،" crl.rsa.4096.pem "،" sha256 "،" رمزگذاری قوی ") #Strong encryption
$ DNSSERVER =" 8.8.8.8 "# بخشی از Advance Routing ، از هر سرور dns استفاده کنید ، پیش فرض google dns 8.8.8.8
$ pathtoovpn = "C: File Files OpenVPN config pia.ovpn" # path to pia opvn file، این اسکریپت ها پرونده را ویرایش می کند و آدرس IP piaserver را اضافه می کند ، تغییر دهید تا با مکان شما ovpn
$ disableportforwarduser = $ false # به موقتی غیرفعال کردن حمل و نقل پورت هنگام اتصال به یک سرور حمل و نقل غیر پورت
#Script در زیر ، مراقب باشید هر چیزی را در زیر این خط تغییر دهید
$ Windowswidth = 100
$ WindowsHeight = 26
$ host.ui.RawUI. WindowTitle = "حمل و نقل بندر PIA برای Utorrent / qBittorrent / Other $ Ver"
$ rand = سیستم شیء جدید. تصادفی
$ chrstg = "abcdef1234567890"
$ servererror = $ true
$ aktualip = ''
$ saveX = [console] :: CursorLeft
$ saveY = 0
'|'، '/'، '-'، ''
$ startline = 1 # که برای شروع به روزرسانی بر اساس چاپ تابع ()
$ gapyspaces = ""
$ isprocessactive = $ نادرست
$ portupdatesuccessful = $ False
1 .. $ Windowswidth | ٪ {$ gapyspaces + = ""}

صفحه نمایش عملکرد ($ شروع ، $ کامل روشن = $ نادرست) {
if ($ کامل) {
روشن ؛
چاپی ؛
[console] :: SetCursorPosition ($ savex ، شروع $)
} other {
[console] :: SetCursorPosition ($ savex ، $ start)
for ($ i = $ start؛ $ i -le 11؛ $ i ++) {
نوشتن-میزبان $ gapyspaces
if ([Console] :: CursorTop -gt 13) {break}
}
[console] :: SetCursorPosition ($ savex ، start $)
}
} [1945900] چاپ عملکردها () {
میزبان نوشتن "مسیریابی خودکار / پیشبرد تنظیم شده است:" $ ENABLEAUTOCHECK "/" $ EnabledAdvanceRouting
}
عملکرد isNumeric ($ x) {
$ x2 0
$ isNum = [System.Int32] :: TryParse ($ x، [ref] $ x2)
Return $ isNum
}
لیست کننده های عملکرد
$ SaveY = [Console] :: :: CursorTop-1
[console] :: SetCursorPosition ($ saveX ، $ SaveY + 4)
for ($ i = $ PIAserver.getlowerbound (0)؛ $ i -le $ PIAserver.getupperbound (0)؛ $ i ++) {
$ temp = "$ i" + $ PIA erver [$i][0] + $ vacyspaces
write-host $ temp.substring (0،45) "Port Forwarding =" $ PIAserver [$i][1]
}
[console] :: :: SetCursorPosition ($ saveX، $ SaveY)
}
Funance AdvanceRouting {
نوشتن "حافظه نهان گرگ DNS"
ipconfig / flushdns
را بنویسید "افزودن مسیر موقت برای سرور DNS: $ DNSSERVER توسط دروازه: $ defaultgateway" [19459002ER] .255.255 $ defaultgateway
$ FullAddressList = nslookup -type = a $ PIAserver [$PIAservernum][0] $ DNSSERVER
بنویسید "حذف مسیر موقت به سرور DNS: $ DNSSERVER توسط دروازه: $ defaultgateway"
مسیر حذف
if (test-path $ pathtoovpn) fore
foreach ($ $ در $ FullAddressList) {
$ tempip = "$ line" | ٪ {$ _. تقسیم ("") [2]}
$ IsValid = ($ tempip -As [IPAddress]) -As [Bool]
if ($ IsValid-and $ tempip -ne $ DNSSERVER) {
بنویسید "افزودن مسیر موقت برای سرور PIA: $ tempip by gateway: $ defaultgateway"
مسیر را اضافه کنید $ tempip mask 255.255.255.255 $ defaultgateway
(gc $ pathtoovpn) -replace "large." tempip $ ($ PIAcipher [$PIAStrongEncryption][$PIAportsnum]) "| sc $ pathtoovpn
(gc $ pathtoovpn) -replace 'proto. *'، "proto $ ($ PIAprotocal [$PIAportsnum])" | sc $ pathtoovpn
(gc $ pathtoovpn) - جایگزین "رمزنگاری. *" ، "رمزگذار $ ($ PIAcipher [$PIAStrongEncryption][2])" | sc $ pathtoovpn
(gc $ pathtoovpn) - جای "ca. *" ، "ca $ ($ PIAcipher [$PIAStrongEncryption][3])" | sc $ pathtoovpn
(gc $ pathtoovpn) -replace 'crl-verify. *'، "crl-verify $ ($ PIAcipher [$PIAStrongEncryption][4])" | sc $ pathtoovpn
(gc $ pathtoovpn) -replace 'auth. * "،" auth $ ($ PIAcipher [$PIAStrongEncryption][5]) "| sc $ pathtoovpn
نوشتن "پرونده به روزرسانی: $ pathtoovpn برای اتصال به سرور PIA"
بنویسید "با آدرس IP: $ tempip $ ($ PIAprotocal [$PIAportsnum]) $ ($ PIAcipher [$PIAStrongEncryption][$PIAportsnum]) $ ($ PIAcipher [$PIAStrongEncryption][6]) ""
Return
}
}
بنویسید "" سرور DNS معتبری نیست ، یا یک دروازه معتبر نیست ، یا آدرس معتبر PIA Server "نیست.
Start-Sleep -s 60
} other {
write-host "مسیری معتبر برای پیکربندی openvpn نیست: $ pathtoovpn"
Start-Sleep -s 60
}
}
تنظیم تنظیم عملکرد {
$ pshost = get-host
$ pswindow = $ pshost.ui.rawui
$ psWindow.WindowSize = @ {عرض = 1؛ قد = 1}
$ psWindow.BufferSize = @ {عرض = $ Windowswidth؛ قد = $ WindowsHeight}
$ psWindow.WindowSize = @ {عرض = $ Windowswidth؛ ارتفاع = $ WindowsHeight}
}
تنظیم مجدد عملکرد {
$ ip = ''
$ counter = 0
در حالی که ($ ip -eq '") {
if (0 - eq $ counter٪ 60) {
Stop-Service OpenVPNService
Writ-Host $ a.toshorttimestring () "منتظر بمانید تا OpenVPNService متوقف شود."
Start-Sleep -s 5
if ($ EnabledAdvanceRouting ) {
خط شروع صفحه $ $ درست
اگر ($ 0 ضد 0) {نوشتن-هاست $ a.toshorttimestring () "اتصال ناموفق بود ، مجدداً تغییر دهید"}
بنویسید-میزبان $ a.toshorttimestring ( ) "Advance Routing فعال شده است ، تنظیم مجدد مسیرها برای اتصال به سرور PIA."
AdvanceRouting
}
Start-Service OpenVPNService
$ SaveY = [Console] :: CursorTop
}
] سعی کنید {
$ ip = (Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object $ _. توضیحات شبیه به "TAP *".). IPAddress [0]
بنویسید-میزبان "VPN متصل شد ، در انتظار پایان" ] Start-Sleep -s 5
}
گرفتن {
cle arscreen $ SaveY
$ counter + = 1
نوشتن-میزبان "Wating for VPN to connect" $ counter
Start-Sleep -s 1
}
}
startline screen $ $ درست
}
عملکرد fnutorrent {
سعی کنید cle
clearscreen ($ startline + 1)
$ url = "http: //" + $ ip + ":" + $ WEBGUI_PORT_ut + " / gui / "
$ Credential = (New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ WEBGUI_USER_ut ، ($ WEBGUI_PASS_ut | ConvertTo-SecureString -AsPlainText -Force))
$ reps = Invoke-WebRequest -usebasicparsing -Uri $ url "token.html"-اعتبار معتبر $ اعتبار -SessionVariable my_session
$ token = ($ پاسخ.tostring) .split ('>') [2] .split ('<') [0]
$ reps = Invoke-WebRequest -usebasicparsing -Uri $ url "؟ action = setetting & s = bind_port & v = $ port & token = $ token" -باحال $ my_session
$ پاسخ = (Invoke-WebRequest -usebasicparsing -Uri $ url "؟ action = getsettings & token = $ token" -WebSession $ my_session) .tostring ()
$ پاسخ = ($ Response.substring ($ Response.indexof ("bind_port") - 1)) substring (14)
clearscreen ($ startline + 1)
نوشتن-هاست "Utorrent set to =" $ answer.Substring (0، $ Response.indexof ("، "))
Return True True
}
گرفتن [system.exception] {
$ a = get-date
write-host $ _. Exception.Message
نوشتن-میزبان $ a .toshorttimestring () "به روزرسانی بندر از طریق uTorrent WEBGUI انجام نشد."
$ False
بازگشت}
}
عملکرد fnqbittorrent {
سعی کنید cle
clearscreen ($ startline + 1)
$ url = "http: //" + $ ip + ":" + $ WEBGUI_PORT_qb + "/ api / v2 / "
$ postParams =" نام کاربری = $ WEBGUI_USER_qb و رمز عبور = $ WEBGUI_PASS_qb "
$ پاسخ = Invoke-WebRequest -usebasicparsing -Uri $ url" auth / log "-Method POST -B $ Referer "= $ url} -SessionVariable my_session
$ postData = 'json = {" listen_port ":' + $ port + '}'
$ Response = Invoke-WebRequest -usebasicparsing -Uri $ url" برنامه / مجموعهPreferences "-Method POST -Body $ postData -Headers @ {" Referer "= $ url} -WebSession $ my_session | ConvertFrom-Json
$ پاسخ = دعوت-WebRequest -usebasicparsing -Uri $ url" برنامه / تنظیمات برگزیده " {"Referer" = $ url} -WebSession $ my_session | ConvertFrom-Json
نوشتن-هاست "qBitTorrent set to =" $ Response.listen_port
$ پاسخ = دعوت-WebRequest -usebasicparsing-Uri $ url "auth / logout "-Method POST -Body $ postParams -Headers @ {" داور "= $ url} -WebS ession $ my_session
بازگشت $ True
}
گرفتن [system.exception] {
$ a = get-date
نوشتن-میزبان $ _. استثناء.مسجد
بنویسید-میزبان $ a .toshorttimestring () "به روزرسانی بندر از طریق qbittorrent WEBGUI انجام نشد."
Writ-Host $ a.toshorttimestring () "تنظیماتی را که شما اسکریپت را برای qBitTorrent داده اید" بررسی کنید "
بازگشت $ False
}

}

عملکرد fnother {
را امتحان کنید {
# $ port پستی برای پورت واضح است. نوشتن آنچه شما نیاز دارید در اینجا
نوشتن-هاست $ a.toshorttimestring () "برای استفاده از دیگری باید کارکرد را به روز کنید. برنامه "
Return $ True
}
گرفتن [system.exception] {
$ a = get-date
نوشتن-هاست $ a.toshorttimestring ()" به روزرسانی دیگر انجام نشد "
write-Host "لطفاً اطلاعاتی را که برای این اسکریپت داده اید برای سایرین بررسی کنید."
Start-Sleep -s 60
Return $ False
}
}
تنظیم عملکرد {
سعی کنید {
بازگشت به استعلام-بیان $ Applist [$Applistnum][1]
}
گرفتن [system.exception] {
نوشتن-میزبان $ a.toshorttimestring () "" قادر به تماس خطای اسکریپت عملکرد نیست. این یک خطای غیرقابل بازگشت است. "
$ error [0] .ToString () + $ error [0] .InvocationInfo.PositionMessage
Start-Sleep -s 60
Return $ False
}

}

]}
عملکرد fnqbittorrentstalling {
{
$ url = "http: //" + $ ip + ":" + $ WEBGUI_PORT_qb
$ web = New-Object System.Net.WebClient
$ Headers = "Referer = http: //" + $ ip + ":" + $ WEBGUI_PORT_qb
$ postParams = "نام کاربری = $ WEBGUI_USER_qb و رمز عبور = $ WEBGUI_PASS_qb"
$ پاسخ Uri $ url "/ login" -Method POST -Body $ postParams -Headers @ {"Referer" = "http : / /" + $ ip + ":" + $ WEBGUI_PORT_qb} -SessionVariable my_session
$ Response = Invoke-WebRequest -usebasicparsing -Uri $ url "/ query / torrents؟ filter = بارگیری" "-Headers @ {" Referer "= $ url} -WebSession $ my_session | ConvertFrom-Json
$ Response1 = Invoke- WebRequest -usebasicparsing -Uri $ url "/ query / transferInfo" -Headers @ {"داور" = $ url -WebSession $ my_session | ConvertFrom-Json
$ i = 0
foreach ($ $ با $ Response.state) {if ($ state -eq "stalledDL") {$ i + = 1}}
اگر (($ i -gt 0) -and ($ i -eq $ Response.count) -and ($ bers1.total_peer_connections -eq 0))
{نوشتن-هاست "Qbittorrent متوقف شده است ، راه اندازی مجدد"
$ qbitorrentpath = دریافت فرآیند "qBittorrent" -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Path
if ($ qbitorrentpath -ne $ null) {
$ Response = Invoke-WebRequest -usebasicparsing -Uri $ url "/ دستور / خاموش" -Headers @ {"مراجعه کننده" = $ url -WebSession $ my_session
$ SaveY = [Console] :: CursorTop
for ($ i = 1؛ $ i -le 24؛ $ i ++) {
[console] :: SetCursorPosition ($ saveX ، $ SaveY)
نوشتن-هاست "در انتظار بسته شدن qBittorent" $ i
Start-Sleep -s 1
$ isitclosed = دریافت-پردازش "qBittorrent" -ErrorAction SilentlyContinue
if ($ isitclosed -eq $ null ) {
نوشتن-میزبان "راه اندازی مجدد qBitTorrent"
start-process $ qbitorrentpath
Start-Sleep -s 5
[console] :: SetCursorPosition ($ saveX، $ SaveY)
break
}
}
} other {
پرتاب ("خطا در مسیر گرفتن")
}
}
}
گرفتن [system.exception] {
$ a = get-date
نوشتن-میزبان $ _. Exception.Message
نوشتن-هاست $ a.toshorttimestring () "" بررسی نشدن q bittorrent. "
Start-Sleep -s 60
}
}
setwindowsize
printtsettings
if ((انتظار زمان -gt 0) {
نوشتن-میزبان" انتظار زمان انتظار ثانیه قبل از ادامه "
Start-Sleep-s $ انتظار ساعت
}
if ($ EnabledAdvanceRouting) {
if (! ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]: GetCurrent ()). IsInRole ([Security.Principal.WindowsBuiltInRole]" سرپرست ")) {Start-Process قدرتhell.exe" -NoProfile -ExrectionPolicy Bypass - پرونده "" $ PSCommandPath "" "-Verb RunAs؛ derket}
اگر (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity] :: GetCurrent ()) IsInRole (`[
[Security.Principal.WindowsBuiltInRole] " سرپرست ")) {
نوشتن-اخطار" شما حق مدیر را برای اجرای این اسکریپت ندارید! `n لطفا این اسکریپت را مجدداً اجرا کنید!"
Start-Sleep -s 60
Break
}
}
$ disableportforward =! $ PIAserver [$PIAservernum] [1] [19659002] while ($ true) {
{
$ ip = (Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object $ _. توضیحات شبیه به "TAP *" try). IPAddress [0]
if (( $ ip -ne $ aktualip) -and (-not $ servererror)) {
clearscreen ($ startline)
$ servererror = $ true
نوشتن-هاست $ a.toshorttimestring () "آدرس IP تغییر یافت "
}
$ currentip = $ ip
$ portupdatesuccessful = $ false
}
گرفتن [system.exception]] {
$ a = get-date
if ($ ENABLEAUTOCH) {
خط شروع صفحه $ $ True [
نوشتن-هاست $ a.toshorttimestring () "VPN متصل نیست. راه اندازی مجدد سرویس. "
resetadapter
} other {
نوشتن-هاست $ a.toshorttimestring ()" VPN متصل نیست. مجدداً 1 دقیقه بررسی می شود. "
Start-Sleep -s 60
}

ادامه
}
$ ProcessActive = دریافت-پردازش $ Applist [$Applistnum][0] -ErrorAction SilentlyContinue
if ( $ ProcessActive -eq $ null) {
$ isprocessactive = $ False
$ portupdatesuccessful = $ False
} other {
$ isprocessactive = $ True
}
if ($ disable) یا $ disableportforwarduser) {
خط شروع صفحه $
$ a = get-date
$ servererror = $ false
if ($ disableportforward) {
میزبان $ a.toshorttimestring () "بنویسید" حمل و نقل پورت در این سرور غیرفعال است. "
} otherif ($ disableportforwarduser) {
نوشتن-میزبان $ a.toshorttimestring ()" شما حمل و نقل پورت را غیرفعال کرده اید. "
}
} otherif ($ servererror) {
{
$ a = get-date
نوشتن-هاست $ a.toshorttimestring () "تلاش برای اتصال به سرور پورت PIA."
$ پاسخ = $ تهی
$ CLIENT_ID = ""
1..64 |٪ $ CLIENT_ID + = $ chrstg.substring ($ rand.next (0 ، $ chrstg.l طول) ، 1)
$ answer1 = Invoke-WebRequest -usebasicparsing -URI http://209.222.18.222:2000/؟ client_id = $ CLIENT_ID
$ پاسخ = $ bers1.tostring ()
if ([string] :: IsNullOrEmpty (پاسخ $)) {
نوشتن-هاست $ a.toshorttimestring () "دریافت نشد پاسخ از سرور. در یک دقیقه دوباره امتحان کنید. "
پاسخ-$ $ بنویسید
} other {
$ port = $ answer.Substring ($ bers.IndexOf (": ") + 1، $ rep.IndexOf ("} ") - $ answer.IndexOf (": ") - 1)
if (isNumeric ($ port)) cle
clearscreen ($ startline)
نوشتن میزبان" پورت داده شده است پورت $ "
$ servererror = $ false
} other {
clearscreen ($ startline)
Writ-Host $ a.toshorttimestring () "سرور خطایی را برگرداند ، باید ظرف 2 دقیقه از اتصال درخواست پورت کنید!"
میزبان $ a.toshorttimestring را بنویسید () "شما در حال حاضر برای اتصال به سرور PIA" $ PIAserver [$PIAservernum][0] "" "" "
}
}
if ($ servererror) {Start- خواب 10}
}
گرفتن [system.exception] {
$ a = تاریخ دریافت
if ($ ENABLEAUTOCHECK) {
خطا [0] .ToString () + $ خطا [0] .InvocationInfo.PositionMessage
نوشتن-میزبان $ a.toshorttimestring () "سرور خطایی را برگرداند ، باید ظرف 2 دقیقه از اتصال درخواست پورت کنید!"
نوشتن-میزبان $ a.toshorttimestring () "اتصال به سرور پورت PIA امکان پذیر نیست. خدمات راه‌اندازی مجدد. "
Start-Sleep -s 10
resetadapter
$ servererror = $ true
} other {
نوشتن-میزبان $ a.toshorttimestring ()" اتصال به ریموت امکان پذیر نیست میزبان امتحان مجدد در 20 ثانیه. "[خطای
$ [0] .ToString () + $ خطا [0] .InvocationInfo.PositionMessage
Start-Sleep -s 20
}
continue
continue
}
if (! $ portupdatesuccessful-and! $ servererror) {
if ($ isprocessactive) {
$ portupdatesuccessful = setapp
} other {
atestt.r () $ Applist [$Applistnum][0] "در حال اجرا نیست."
}
}
if ($ Checkqbittorentstalled-and! $ servererrorror) {
if ($ isprocessactive) {
if ($ Checkqbittorentstalledtime -eq $ null) {
$ Checkqbittorentstalledtime = (تاریخ دریافت) .Addminutes ($ Checkqbittorentstalledtimer).
} other {
if ($ Checkqbittorentstalledtime -le (تاریخ دریافت)) {
fnqbittorrentstalling
$ Checkqbittorentstalledtime = (تاریخ دریافت) .Addminutes ($ Checkqbittorentstallederer 459002] Writ-Host $ a.toshorttimestring () "qBitTorrent خوب است ، دوباره در" $ Checkqbittorentstalledtime.toshorttimestring ()
} Else {
write-host "بررسی کنید که qBittorrent در هنگام نصب متوقف شده است" ()
}
}
} other {
write-host $ a.toshorttimestring () "qBittorrent فعال نیست ، نمی توانید تورنتهای متوقف را بررسی کنید"
}
}
if ($ ENABLEAUTOCHECK) {
$ saveY = [console] :: CursorTop
clearscreen $ saveY $ false
$ a = date-date
نوشتن-هاست $ a.toshorttimestring "بررسی کنید که آیا VPN هنوز فعال است."
$ EnableAutoCheckrespone = پینگ -S $ ip www.privateinternetaccess.com -n 3 -4 | Out-String
if ($ EnableAutoCheckrespone.indexof ("متوسط") -lt 1) {
Writ-Host $ a.toshorttimestring () "VPN متصل است ، اما پاسخ پینگ $ EnableAutoCheckrespone ، سرویس راه اندازی مجدد بود."
Start-Sleep -s 10
resetadapter
$ servererror = $ true
} other {
$ EnableAutoCheckrespone = $ EnableAutoCheckrespone.substring ($ "able ") ] $ EnableAutoCheckrespone = $ EnableAutoCheckrespone.substring (0، $ EnableAutoCheckrespone.l طول -2)
صفحه پاک $ saveY $ false
نوشتن-هاست $ a.toshorttimestring () "VPN هنوز فعال است و قابل دفاع است."
}
}
$ saveY = [console] :: CursorTop
if ($ ENABLEAUTOCHECK) {$ saveY - = 1} #minus یکی برای پاسخ پینگ
اگر ($ Checkqbittorenteded) saveY - = 1} #minus one for check qbittorent stalled
if (! $ isprocessactive) {$ saveY - = 1} #minus یکی برای پردازش تورنت پیام فعال نیست
اگر ($ EnabledAdvanceRouting) {میزبان بنویسید "شما هم اکنون به" $ PIAserver [$PIAservernum][0] $ PIAcipher [$PIAStrongEncryption][$PIAportsnum] ($ PIAprotocal [$PIAportsnum]) وصل شده اید. ToUpper () $ PIAcipher [$PIAStrongEncryption][6] Write
بنویسید " هر بار در ثانیه زمان چک برای دیدن اینکه آیا شما به سیستم وصل هستید. "
نوشتن-میزبان" را فشار دهید "را فشار دهید تا ،" p "را فعال کنید / انتقال پورت غیرفعال ،" c "را برای بررسی اینکه qBitTorrent متوقف شده است ، فشار دهید." [19459002نوشتن-میزبان""a"رابرایچرخهبینUtorrentوqBittorrent،"r"برایمتوقفکردنواتصالمجددبهPIA،"
نوشتن-میزبان "" را بنویسید تا لیستگرهای PIA ، "0-9" را به یک متصل کنید. سرور خاص PIA ، "[میزبانرابنویسید"برایتغییرپروتکلها،"e"رابرایافزایشرمزنگارییاهرکلیددیگربرایتازهکردن،"بنویسید""
$ counter = 0
در حالی که (! $ میزبان. UI.RawUI.KeyAvailable -and ($ counter ++ -le $ checktime) -and! $ servererror) {
$ strmoving | ForEach-Object
Writ-Host -Object $ _ -NoNewline
[Threading.Thread] :: خواب (200)
[console] :: SetCursorPosition ($ saveX، [Console] :: CursorTop)
}
}
if ($ Host.UI.RawUI.KeyAvailable) {
$ key = $ host.UI.RawUI.ReadKey ('NoEcho، IncludKeyUp')
if ($ key.character -eq "Q" ) {break؛}
if ($ key.character -eq "C") {fnqbittorrentstalling؛}
if ($ key.character -eq "R") {
resetadapter
$ servererror = $ true
}
if ($ key.character -eq "P") {
$ disableportforwarduser =! $ disableportforwarduser
if (! $ disableportforwarduser) {
if (isNumeric $) if (isNumeric $) if (isNumeric $) if (isNumeric $) if (isNumeric $) )) {
clearscreen ($ startline)
نوشتن-میزبان "بندر داده شده قبل از پورت $ بود"
$ portupdatesuccessful = setapp
$ savey + = 1
} other {
$ servererror = $ true
}
}
}
if ($ key.character -eq "A") {
if ($ Applistnum -eq 0) {
$ Applistnum = 1
} other {
$ Applistnum = 0
}
نوشتن-میزبان "تغییر برنامه برای به روزرسانی در" $ Applist [$Applistnum] [0]
$ portupdatesuccessful = setapp
}
if ($ key.character -eq "T") {
if ($ EnabledAdvanceRouting) {
if ($ PIAportsnum -eq 0) {
$ PIAportsnum = 1
} other {
$ PIAportsnum = 0

نوشتن-میزبان "تغییر پروتکل به" ($ PIAprotocal [$PIAportsnum]). ToUpper ()
Start-Sleep -s 5
resetadapter
$ servererror = $ true
} other {
میزبان نوشتن "فعال کردن مسیریابی پیشرفته برای استفاده از این"
Start-Sleep -s 10
}
}
if ($ key.character -eq "E") {
if ($ EnabledAdvanceRouting) {
if ($ PIAStrongEncryption -eq $ PIAcipher.getupperbound (0)) {
$ PIAStrongEncryption = 0
} other {
$ PIAStrong ] نوشتن-میزبان "تغییر رمزگذاری در" PIAcipher $ [$PIAStrongEncryption][6]
Start-Sleep -s 5
resetadapter
$ se rvererror = $ true
} other {
میزبان "فعال کردن پیشبرد را فعال کنید تا از این استفاده کنید"
Start-Sleep -s 10
}
}
if (غیر عادی) .character)) {
if ($ EnabledAdvanceRouting) {
$ PIAservernum = [convert] :: ToInt16 ($ key.character، 10)
write-Host "تغییر سرور به" $ PIAserver [$PIAservernum] [0]
$ disableportforward =! $ PIAserver [$PIAservernum][1]
Start-Sleep -s 5
resetadapter
$ servererror = $ true
} other {
نوشتن-میزبان "فعال کردن پیشبرد جهت استفاده از این"
Start-Sleep -s 10
}
}
if ($ key.character -eq "L") {listervers؛}
[Threading.Thread] :: خواب (500)
$ میزبان .UI.RawUI.FlushinputBuffer ()
}
if ($ servererror) {
صفحه اول $ clearscreen
} other {
clearscreen $ savey

65]