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 تأییدشده مقصد را اضافه کنید. هنگامی که اعتبارنامه‌ها دخیل‌اند، خروجی اشکال‌زدایی را حساس تلقی کنید.

مقالات مرتبط