IO::Socket::Socks-ը կարող է տպել SOCKS փոխանակումը, երբ միացումը ձախողվում է։ Նշեք պրոքսին, նպատակակետը և վրիպազերծման տարբերակը բացահայտ՝

use IO::Socket::Socks;

my $socket = IO::Socket::Socks->new(
    ProxyAddr   => 'proxy.example',
    ProxyPort   => 1080,
    ConnectAddr => 'www.example.com',
    ConnectPort => 80,
    SocksVersion => 5,
    SocksDebug  => 1,
    Timeout     => 10,
) or die $SOCKS_ERROR;

$socket->close();

Մոդուլը SocksDebug-ը նկարագրում է որպես SOCKS երթևեկությունը պրոտոկոլային ձևով ցուցադրող միջոց։ Օգտագործեք այն՝ տեսնելու, թե որքան առաջ է գնացել բանակցությունը, և ստուգելու վերադարձված SOCKS ձախողման կոդը։

ProxyAddr-ը և ProxyPort-ը նշում են միջնորդին։ SOCKS5 պրոքսիների ցանկից չհաստատված հասցեն կարող է լրացնել այդ դաշտերը թույլատրված հանրային HTTP թեստի համար։ ConnectAddr-ը և ConnectPort-ը նշում են այն ծառայությունը, որին պետք է միանալ։ Լսողին հասնելու սխալը և SOCKS միացման բացասական պատասխանը տարբեր դիտարկումներ են։

SOCKS5 օգտանուն/գաղտնաբառ նույնականացում պահանջող պրոքսիի համար փաստաթղթավորված կոնստրուկտորի դաշտերը ներառում են AuthType => 'userpass', Username և Password։

Հաջող արգելափակող կոնստրուկտորը հաստատում է SOCKS միացումը, մինչդեռ վերադարձված սոքեթով հավելվածի հարցումը տալիս է ավելի ուշ հավելվածի արդյունքը։ HTTPS նպատակակետի համար SOCKS-ից հետո ավելացրեք նպատակակետի ստուգված TLS՝ նախքան այդ պրոտոկոլի հարցումն ուղարկելը։ Երբ ներգրավված են հավատարմագրեր, վրիպազերծման ելքը դիտարկեք որպես զգայուն։

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