కనెక్షన్ విఫలమైనప్పుడు 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 జోడించండి. ఆధారాలు పాల్గొన్నప్పుడు డీబగ్ అవుట్‌పుట్‌ను సున్నితమైనదిగా పరిగణించండి.

సంబంధిత వ్యాసాలు