এক রৈখিক
আমি একটি দুর্দান্ত ওয়ান-লাইনার একসাথে রেখেছি যা দ্রুত উদ্দেশ্য পূরণ করে, একটি স্বেচ্ছাসেবী পরিসরে একটি নির্বিচার সংখ্যক বন্দর দখল করতে দেয় (এখানে এটি পাঠযোগ্যতার জন্য 4 লাইনে বিভক্ত করা হয়েছে):
comm -23 \
<(seq "$FROM" "$TO" | sort) \
<(ss -tan | awk '{print $4}' | cut -d':' -f2 | grep '[0-9]\{1,5\}' | sort -u) \
| shuf | head -n "$HOWMANY"
লাইনে লাইন
comm
এমন একটি ইউটিলিটি যা দুটি ফাইলের রেখাগুলির সাথে তুলনা করে যা বর্ণমালা অনুসারে বাছাই করতে হবে। এটি তিনটি কলাম আউটপুট করে: প্রথম ফাইলটিতে কেবল প্রদর্শিত লাইনগুলি, কেবল দ্বিতীয়টি এবং সাধারণ লাইনে প্রদর্শিত হয় এমন লাইনগুলি। নির্দিষ্ট করে -23
আমরা পরবর্তী কলামগুলি দমন করি এবং কেবল প্রথমটি রাখি। পাঠ্য লাইনের ক্রম হিসাবে প্রকাশিত দুটি সেটগুলির পার্থক্য অর্জন করতে আমরা এটি ব্যবহার করতে পারি। আমি comm
এখানে সম্পর্কে শিখেছি ।
প্রথম ফাইলটি পোর্টগুলির পরিসীমা যা আমরা বেছে নিতে পারি। seq
থেকে সংখ্যার একটি সাজানো ক্রম উৎপন্ন $FROM
করতে $TO
। ফলাফল বর্ণানুক্রমিকভাবে সাজানো হয় (সংখ্যার পরিবর্তে) এবং প্রক্রিয়া প্রতিস্থাপনcomm
ব্যবহার করে প্রথম ফাইল হিসাবে পাইপ করা হয় ।
দ্বিতীয় ফাইল পোর্ট সাজানো তালিকা, যে আমরা কল করে প্রাপ্ত ss
কমান্ড (সঙ্গে -t
অর্থ বিভিন্ন TCP পোর্ট -a
সব অর্থ - প্রতিষ্ঠিত এবং শোনা - এবং -n
বলুন, সমাধান করতে চেষ্টা করবেন না, - সাংখ্যিক 22
করতে ssh
)। এরপরে আমরা কেবলমাত্র চতুর্থ কলামটিই বেছে নিই awk
, এতে স্থানীয় ঠিকানা এবং পোর্ট রয়েছে। আমরা ডিলিমিটারের cut
সাথে ঠিকানা এবং পোর্ট বিভক্ত করতে ব্যবহার করি :
এবং কেবল পরে ( -f2
) রাখি । ss
এছাড়াও একটি শিরোনাম আউটপুট, যে আমরা grep
5 টির চেয়ে বেশি নম্বরের খালি খালি অনুক্রমের জন্য পিং করে পরিত্রাণ পাই We আমরা তারপরে ডুপ্লিকেট ছাড়াই আইংয়ের comm
প্রয়োজনীয়তা মেনে sort
চলি -u
।
এখন আমরা যে আমরা করতে পারেন খোলা পোর্ট একটি সাজানো তালিকা আছে, shuf
তারপর প্রথম দখল করতে fle "$HOWMANY"
সঙ্গে বেশী head -n
।
উদাহরণ
ব্যক্তিগত পরিসরে তিনটি এলোমেলো খোলা পোর্ট ধরুন (49152-65535)
comm -23 <(seq 49152 65535 | sort) <(ss -tan | awk '{print $4}' | cut -d':' -f2 | grep "[0-9]\{1,5\}" | sort -u) | shuf | head -n 3
উদাহরণস্বরূপ ফিরে আসতে পারে
54930
57937
51399
নোট
- সুইচ
-t
সঙ্গে -u
এ ss
পরিবর্তে বিনামূল্যে UDP পোর্ট জন্য।
- আপনি যদি এলোমেলো পরিবর্তে সংখ্যকভাবে বাছাই করা বন্দরগুলি পেতে পছন্দ
shuf
করেন sort -n
তবে এর সাথে প্রতিস্থাপন করুন
-n
নেটস্ট্যাট এবং আরও নির্বাচনী গ্রেপ যোগ করুন)। এটি করার উপায় হ'ল আপনার প্রয়োজন অনুযায়ী যে কোনও মোডে একটি পোর্ট চেষ্টা করা এবং এটি খোলার এবং এটি উপলভ্য না হলে অন্য একটির চেষ্টা করে।