সংযোগ ব্যর্থ হলে 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 যোগ করুন। শংসাপত্র জড়িত থাকলে ডিবাগ আউটপুটকে সংবেদনশীল হিসেবে গণ্য করুন।

সম্পর্কিত নিবন্ধ