টিসিপি শ্রোতা কীভাবে তৈরি করবেন?


40

ভূমিকা: আমি একটি বাশ ফাংশন তৈরি করেছি যা কোনও পোর্ট উপলব্ধ কিনা তা পরীক্ষা করতে সক্ষম এবং নির্দিষ্ট সর্বাধিক পোর্ট নম্বর পর্যন্ত মিথ্যা হলে এটি 1 দ্বারা বাড়িয়ে তোলে। উদাহরণস্বরূপ, যদি পোর্ট 500 অনুপলব্ধ থাকে তবে 501 এর উপলব্ধতা 550 অবধি পরীক্ষা করা হবে।

লক্ষ্য: এই ব্যাশ ফাংশনটি পরীক্ষা করার জন্য আমাকে তালিকাভুক্ত অবস্থায় থাকা পোর্টের একটি ব্যাপ্তি তৈরি করতে হবে।

প্রচেষ্টা: উইন্ডোজগুলিতে এই পাওয়ারশেল কমান্ডগুলি ব্যবহার করে একটি তালিকা বন্দর তৈরি করা সম্ভব :

PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u> $listener = [System.Net.Sockets.TcpListener]1234
PS C:\Users\u> $listener.Start();
PS C:\Users\u> netstat -nat | grep 1234
TCP    0.0.0.0:1234           0.0.0.0:0              LISTENING       InHost
PS C:\Users\u> $listener.Stop();
PS C:\Users\u> netstat -nat | grep 1234
PS C:\Users\u>

এর ভিত্তিতে আমি কোনও কমান্ডের কথা ভাবতে চাইছিলাম যা সেন্টোস-এও একই কাজ করতে পারে তবে আমি কেন জানি না এবং আমি কেন এই সমস্যার সমাধান করার সমাধান খুঁজে না পেয়ে গুগলে শুরু করেছি।

প্রত্যাশিত উত্তর : আমি উত্তরটি স্বীকার করব এবং তার উপরে উন্নীত করব যা একটি কমান্ড রয়েছে যা একটি তালিকা বন্দর তৈরি করতে সক্ষম হয় এবং কমান্ডটি চালুর পরে পোর্টটি তালিকাভুক্ত অবস্থায় থাকতে হবে, অর্থাৎ:

[user@host ~]$ ss -nat | grep 500
LISTEN     0      128                       *:500                       *:*

পার্শ্ব নোটে: এই সমস্ত নাচের মধ্য দিয়ে শ্রুতি বন্দরগুলি খুঁজে পাওয়া সম্ভব। লিনাক্স: netstat -an --tcp | awk '/LISTEN/ {sub(".*:", "", $4); print $4}' | sort -nu। * বাসদ অন: netstat -an -f inet -p tcp | awk '/LISTEN/ {sub(".*\\.", "", $4); print $4}' | sort -nu
lcd047

উত্তর:


40

আপনি nc -lযা খুঁজছেন তা করতে আপনি একটি পদ্ধতি হিসাবে ব্যবহার করতে পারেন । কিছু বাস্তবায়নের ncএকটি -Lবিকল্প রয়েছে যা সংযোগগুলি অব্যাহত রাখতে দেয়।

যদি আপনার কেবলমাত্র কিছুক্ষণের জন্য প্রয়োজন হয় আপনি একটি forলুপে এই কমান্ডটি খুলতে এবং পোর্টের একটি গোছাটি সেভাবেই খুলতে পারতেন ।

আপনার যদি এগুলির আর বেশি সময় খোলা থাকে তবে আপনি একটি ডিমন তৈরি করতে একটি সুপার সার্ভার ব্যবহার করতে পারেন।


1
বদলে -Lআমি সুপারিশ করবে: -k, --keep-openমোড শুনতে একাধিক সংযোগ গ্রহণ
ম্যানুয়েল Durando

37

আপনি নেটক্যাট ব্যবহার করে একটি পোর্ট শ্রোতা তৈরি করতে পারেন।

root@ubuntu:~# nc -l 5000

নেটস্কট কমান্ড ব্যবহার করে পোর্ট খোলা আছে কি না তাও আপনি পরীক্ষা করতে পারেন।

root@vm-ubuntu:~# netstat -tulpen | grep nc
tcp        0      0 0.0.0.0:5000             0.0.0.0:*               LISTEN      0          710327      17533/nc

আপনি এনসি দিয়েও পরীক্ষা করতে পারবেন:

নেটক্যাট সার্ভার শ্রোতা:

nc -l localhost 5000

নেটকাট ক্লায়েন্ট:

root@vm-ubuntu:~# nc -v localhost 5000
Connection to localhost 5000 port [tcp/*] succeeded!

যদি পোর্ট খোলা না থাকে

root@vm-ubuntu:~# nc -v localhost 5000
nc: connect to localhost port 5000 (tcp) failed: Connection refused

4
আমাকে বন্দরটি নির্দিষ্ট করে দিয়েছিল -pবা এটি কার্যকর হয়নি:nc -l -p 1234
লেহাকিম

এনসি-এল 12345 উবুন্টু 16.04-এ কাজ করেছেন
ইউ শি শি

যাদের জন্য /bin/nc --> nc.traditional(যেমন ডেবিয়ান), ব্যবহার -pবিকল্প, উপরে, যেমন @Leahkim পরামর্শ দেন।
ankostis

6

নেটক্যাট ব্যবহার করে শুনুন।

# nc -l 5555

এসএস ব্যবহার করে পরীক্ষা করুন

# ss -nat|grep 5555
LISTEN     0      1                         *:5555                     *:*
#

0

নোট করুন যে ডেবিয়ানের netcatপ্যাকেজের একটি আলাদা বাস্তবায়ন রয়েছে যেখানে (কমপক্ষে) আপনাকে -pবিকল্পের মাধ্যমে পোর্ট সরবরাহ করতে হবে এবং -kবিকল্পটি কাজ করে না। আপনি ডকার ব্যবহার করে এই সমস্যাটিতে চলে যেতে পারেন।

sudo apt install -y netcat

nc -l -p 1337

বিকল্পটি openbsd-netcatযেখানে -kকাজ করে তার পরিবর্তে আপনি ব্যবহারের বিষয়টি বিবেচনা করতে পারেন ।


0

পাইথন কোডের নীচে একটি ডামি পোর্ট খুলতে সহায়ক is

'' 'থ্রেড ব্যবহার করে সিম্পল সকেট সার্ভার' '' আমদানি সকেট আমদানি sys HOST = '' # সিম্বলিক নাম, সমস্ত উপলব্ধ ইন্টারফেস পোর্ট = 5500 # স্বেচ্ছাসেবীযুক্ত অ-সুবিধাযুক্ত পোর্ট s = সকেট.সকেট (সকেট.এফএনপেট, সকেট। মুদ্রণ 'সকেট তৈরি'

স্থানীয় হোস্ট এবং বন্দরে সকেটটি আবদ্ধ করুন

চেষ্টা করুন: s.bind ((HOST, PORT)) ছাড়া সকেট.অররারের নাম হিসাবে: মুদ্রণ 'বিন্দু ব্যর্থ হয়েছে। ত্রুটি কোড: '+ স্ট্রিং (msg [0]) +' বার্তা '+ msg [1] sys.exit () মুদ্রণ' সকেট বাইন্ড সম্পূর্ণ '

সকেটে শোনা শুরু করুন

s.listen (10) মুদ্রণ 'সকেট এখন শুনছে'

এখন ক্লায়েন্টের সাথে কথা বলতে

1: # কোনও সংযোগ গ্রহণের জন্য অপেক্ষা করুন - কল সংযোগটি ব্লক করা হচ্ছে, অ্যাডারে = এস.সেপ্ট করুন () প্রিন্ট করুন 'সংযুক্ত' + + অ্যাড্রেয়ারের সাথে [0] + ':' + স্ট্রিং (অ্যাডার [1]) এসক্লোজ ()

ফাইলটি সেভ করুন এবং নিচের মতো প্রদর্শিত পাইথন কমান্ড দিয়ে এটি চালান

।] # পাইথন পোর্টালিস্টনার.পি সকেট তৈরি সকেট বাঁধাই সম্পূর্ণ সকেট এখন শুনছে

তারপরে আপনি প্রয়োজনীয় মেশিন থেকে যাচাই করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.