IO::Socket::Socks inaweza kuchapisha mabadilishano ya SOCKS pale muunganisho unashindikana. Toa proksi, lengwa na chaguo la utatuzi kwa uwazi:

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();

Moduli inaeleza SocksDebug kama inayoonyesha trafiki ya SOCKS kwa umbo linalozingatia itifaki. Itumie kuona jinsi majadiliano yanavyoendelea na kuchunguza msimbo wa kushindikana wa SOCKS unaorejeshwa.

ProxyAddr na ProxyPort hutambulisha mpatanishi. Anwani isiyothibitishwa kutoka orodha ya proksi za SOCKS5 inaweza kujaza sehemu hizo kwa jaribio la HTTP la umma linaloruhusiwa. ConnectAddr na ConnectPort hutambulisha huduma inayopaswa kuunganishwa nayo. Hitilafu ya kufikia msikilizaji na jibu hasi la muunganisho wa SOCKS ni mitazamo miwili tofauti.

Kwa proksi inayohitaji uthibitishaji wa jina la mtumiaji/neno la siri la SOCKS5, sehemu zilizoandikwa za kijenzi zinajumuisha AuthType => 'userpass', Username na Password.

Kijenzi kinachozuia kilichofanikiwa huweka muunganisho wa SOCKS, wakati ombi la programu kupitia soketi inayorejeshwa hutoa matokeo ya baadaye ya programu. Kwa lengwa la HTTPS, ongeza TLS ya lengwa iliyothibitishwa baada ya SOCKS kabla ya kutuma ombi la itifaki hiyo. Chukulia matokeo ya utatuzi kuwa nyeti pale vitambulisho vinapohusika.

Makala zinazohusiana