Հում Python սոքեթը չի բանակցում վստահված սերվերի շուրջ միայն այն պատճառով, որ գոյություն ունի http_proxy։ Իր սեփական TCP արձանագրությամբ խոսող հավելվածի համար օգտագործեք միակցիչ, որը հասկանում է ծառայությունը վստահված սերվերի վերջնակետում։

Երբ PySocks-ն արդեն հասանելի է, ստեղծեք կապը բացահայտ՝

import socks

with socks.socksocket() as connection:
    connection.set_proxy(socks.SOCKS5, '203.0.113.10', 1080)
    connection.settimeout(10)
    connection.connect(('example.com', 12345))
    # Exchange the destination protocol here.

Փոխարինեք փաստաթղթային հասցեն և նպատակակետ նավահանգիստը։ Թույլատրված հանրային նպատակակետի համար SOCKS5 վստահված սերվերների ցանկից թեկնածու ընտրեք միայն այն բանից հետո, երբ ստուգեք, որ այն թույլ է տալիս հավելվածի թիրախ նավահանգիստը։ Ստուգեք տեղադրված փաթեթը, աջակցվող մեթոդները և վերջնակետի պահանջները ըստ PySocks ինտերֆեյսի։

Հավելվածի մնացած մասը փոխանակում է իր արձանագրությունը այս հաստատված կապի վրայով։ Եթե այդ արձանագրությունն օգտագործում է TLS, սկսեք այն վստահված սերվերի բանակցությունից հետո և ստուգեք նպատակակետի իրական հոսթի անունը։ Վստահված սերվերի նույնականացումը հաստատում է երթուղին. այն չի տրամադրում նպատակակետի մուտք կամ գաղտնագրում։

SOCKS լսողին անհրաժեշտ է SOCKS բանակցություն։ HTTP ծառայությանը անհրաժեշտ է CONNECT-ին ընդունակ միակցիչ կամայական TCP նպատակակետի համար և կարող է մերժել իր նավահանգիստը։ Միակցիչն ընտրեք իրականում առաջարկվող ծառայության հիման վրա, փոխանակ փոխելու հասցեն և թողնելու սխալ ձեռքսեղմումը։

Փոխարինումը պահեք տեղական։ socket.socket-ին դաս վերագրելը կարող է ազդել անկապ ներմուծումների և գրադարանների վրա։ Եթե սոքեթի ստեղծումը պատկանում է այլ գրադարանի, օգտագործեք նրա փաստաթղթավորված կապի գործարանը կամ վստահված սերվերի ընտրանքը. բառարանը, որը նա երբեք չի կարդում, չի կարող փոխել այդ կապը։

Առնչվող հոդվածներ