আমি কী নেটক্যাটের মাধ্যমে কোনও কনসোল অ্যাপ্লিকেশনটি পাইপ / পুনঃনির্দেশ করতে পারি যাতে এটি দূর থেকে ব্যবহার করা যায়?


10

নেটকাটের মাধ্যমে কনসোল অ্যাপ্লিকেশনটির উদাহরণ 'পাইপ' করা কি সম্ভব, তাই নেটক্যাট একটি নতুন সংযোগের জন্য শোনার জন্য এবং নেটওয়ার্ক সংযোগটি stdinএবং এর stdoutমাধ্যমে পুনর্নির্দেশ করে ।


হ্যাঁ তবে এটি হতে পারে একটি ওলাইনার হতে পারে, যা ভাল, পাইপগুলি তাই। আপনি পিডির মাধ্যমে ইতিমধ্যে চলমান দৃষ্টান্তে এনসি এবং পাইপ বলতে পারবেন কিনা তা আমি জানি না। আপনি কোনও আইপি-তে এনসি করতে পারেন এবং এটি এমন কোনও এনসি-তে পাইপ করতে পারেন যা শ্রবণ করছে এবং পাইপ করতে পারে এমন কোনও এনসি যা শুনছে ইত্যাদি এবং পাইপ যে কোনও আইপি-তে এনসি করতে পারে।
বারলপ

আমি শিরোনামটি পরিবর্তন করেছি কারণ আপনি যা উল্লেখ করেছেন তা পাইপের ব্যবহারের চেয়ে I / O পুনঃনির্দেশের মতো শোনাচ্ছে (যা কেবলমাত্র একটি প্রক্রিয়ার আউটপুটটিকে অন্যটির ইনপুটগুলিতে সরিয়ে নিয়ে যায়)।
ব্রেকথ্রু

@ ব্র্যাকথ্রো কীভাবে পাইপের থেকে পৃথক হয়? যেহেতু তিনি আইও পুনঃনির্দেশের কথা বলছেন এবং ফাইলগুলি নিয়ে কথা বলছেন না, তবে এটি পাইপিং থেকে কীভাবে আলাদা?
বারলপ

@ বারলপ আই / ও পুনর্নির্দেশ ( <বা >) পাইপিং ( |) থেকে উল্লেখযোগ্যভাবে পৃথক , যদিও আপনি কখনও কখনও উভয়ের মিশ্রণের সাথে সমতুল্য অপারেশন অর্জন করতে পারেন। আবার যদিও, I / O পুনঃনির্দেশের সাহায্যে, আপনি উভয় স্ট্রিমের অবস্থান পরিবর্তন করতে পারেন ; পাইপিং কেবল একটি প্রক্রিয়াটির স্ট্যান্ডার্ড আউটপুটটিকে অন্যটির স্ট্যান্ডার্ড ইনপুটটিতে পুনঃনির্দেশ করে।
ব্রেকথ্রু

@ ব্র্যাকথ্রো দেখুন আমি আপনাকে যা জিজ্ঞাসা করেছি তা দেখুন। > এবং <অবশ্যই পাইপিং থেকে আলাদা কারণ <এবং> ফাইলগুলি ব্যবহার করে। তবে সে ফাইল নিয়ে কথা বলছে না। আমি আপনাকে জিজ্ঞাসা করেছি "পাইপ থেকে কীভাবে [আইও পুনঃনির্দেশ] পৃথক হয়? যেহেতু তিনি আইও পুনঃনির্দেশের কথা বলছেন এবং ফাইলগুলি নিয়ে কথা বলছেন না, তবে এটি পাইপিং থেকে কীভাবে আলাদা?"
বার্লপ

উত্তর:


16

ঠিক আছে, উইকিপিডিয়া এবং netcatডকুমেন্টেশনে যেমন নথিভুক্ত করা হয়েছে , এমন একটি -eবিকল্প রয়েছে যা এটি সংযোগ প্রাপ্তির পরে প্রোগ্রামকে স্প্যান ( xecute) করে, সকেটটি স্টিডিন, স্টাডআউট এবং প্রক্রিয়াটির স্টাডারের সাথে সংযুক্ত করে causes ব্যবহারের উদাহরণ:

nc -l -pপোর্ট_ সংখ্যা -eপ্রোগ্রাম_নাম

উদাহরণ সাধারণভাবে দেন /bin/shবা bashহিসাবে ব্যবহার করা হচ্ছে program_name । এই বিকল্পটির ব্যবহার নিরুৎসাহিত করা হয়েছে কারণ এটি মূলত আপনার মেশিনে একটি বেনাম, পাসওয়ার্ডহীন অ্যাক্সেস পোর্টাল খোলে। অবশ্যই, এটি শেলটির চেয়ে কম শক্তি সহ একটি প্রোগ্রাম ব্যবহার করে (এটির শেল থেকে পালানোর ক্ষমতা নেই এমন একটি) ব্যবহার করে আপনার প্রশমিত করা যায়, এটি আপনার ব্যবহারকে হ্রাস করে এবং একটি গোপন রেখে। যাইহোক, মূল বিকাশকারীদের netcatদৃ of়ভাবে যথেষ্ট অনুভূত হয়েছিল যে এই বিকল্পটি একটি খারাপ ধারণা যা তারা এটি ডিফল্টরূপে অক্ষম করে এবং "GAPING_SECURITY_HOLE" সংকলন বিকল্পের অধীনে শর্তযুক্ত করে। এই নেটগেট টিউটোরিয়াল এবং অন্যান্য netcatডকুমেন্টেশনে এটি সংক্ষেপে উল্লেখ করা হয়েছে ।

একটি গুগল অনুসন্ধান আমাকে অন্যান্য স্ট্যাক এক্সচেঞ্জ সাইটে এই বিষয়টির আলোচনার দিকে পরিচালিত করেছিল: স্ট্যাক ওভারফ্লো এবং সার্ভার ফল্ট । একাধিক অবদানকারী ব্যবহার না করেই একই জিনিস করে নিম্নলিখিত কৌশল প্রদত্ত -eবিকল্প (অর্থাত একটি সংস্করণ এ, netcatযে হয়েছে -eবিকল্প অক্ষম):

সার্ভারে:
mkfifoপাইপ_নামের
nc -l -pপোর্ট_ <নাম্বার   | পাইপ_নাম >প্রোগ্রাম_নাম পাইপ_নাম

ক্লায়েন্টে:
nc সার্ভার_ম্যাচাইন_নাম  পোর্ট_নম্বার

কয়েকটি নোট:

  • কিছু সংস্করণগুলিতে netcat, -lবোঝা -p, তাই আপনি শুধু বলতে হবে -lএবং তারপর পোর্ট নম্বর।
  • আপনি নিজের সমাধানটি একটি while trueলুপে মুড়তে চাইতে পারেন ।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.