IO::Socket::Socks voi tulostaa SOCKS-vaihdon, kun yhteys epäonnistuu. Anna välityspalvelin, kohde ja virheenjäljitysasetus nimenomaisesti:

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

Moduuli dokumentoi SocksDebugin SOCKS-liikenteen näyttämisenä protokollasuuntautuneessa muodossa. Käytä sitä nähdäksesi, kuinka pitkälle neuvottelu etenee, ja tarkastaaksesi palautetun SOCKS-vikakoodin.

ProxyAddr ja ProxyPort yksilöivät välittäjän. SOCKS5-välityspalvelinluettelosta peräisin oleva todentamaton osoite voi täyttää nämä kentät sallittua julkista HTTP-testiä varten. ConnectAddr ja ConnectPort yksilöivät palvelun, johon sen pitäisi yhdistää. Virhe kuuntelijan tavoittamisessa ja kielteinen SOCKS-yhteysvastaus ovat eri havaintoja.

Välityspalvelimelle, joka vaatii SOCKS5-käyttäjätunnus/salasana-todennuksen, dokumentoidut konstruktorikentät sisältävät AuthType => 'userpass', Username ja Password.

Onnistunut estävä konstruktori muodostaa SOCKS-yhteyden, kun taas palautetun pistokkeen kautta tehty sovelluksen pyyntö tuottaa myöhemmän sovellustuloksen. HTTPS-kohteelle lisää SOCKSin jälkeen varmennettu kohteen TLS ennen kyseisen protokollan pyynnön lähettämistä. Käsittele virheenjäljitystulostetta arkaluontoisena, kun tunnistetiedot ovat mukana.

Aiheeseen liittyvät artikkelit