কোনও নেটওয়ার্কে ব্যবহৃত সমস্ত আইপি ঠিকানাগুলি কীভাবে সন্ধান করবেন


94

আমার কাজে প্রচুর কম্পিউটার রয়েছে এবং আমি একটি রসিকতা করতে চাই। আমি নেটওয়ার্কের মাধ্যমে কম্পিউটার বন্ধ করতে পারি তবে আইপি ঠিকানাগুলি খুঁজে পাওয়া আমার পক্ষে কঠিন hard

আমি কীভাবে সহজেই 192.168.1.aa থেকে 192.168.1.zz থেকে সমস্ত অনলাইন আইপি অ্যাড্রেসগুলি খুঁজে পেতে পারি?


4
চেষ্টা করুনangry ip scanner
ওয়েব-ই


2
গম্ভীরভাবে? আপনি কি আপনার সহকর্মীদের ফাঁকি দেওয়ার জন্য আমাদের সহায়তা চান?
ড্যান এইচ

উত্তর:


141

সাধারণত, nmapদ্রুত নেটওয়ার্ক স্ক্যান করতে বেশ কার্যকর।

এনএমএপ ইনস্টল করতে, টার্মিনালে নিম্নলিখিত কমান্ডটি প্রবেশ করুন:

sudo apt-get install nmap

একবার অ্যাপ্লিকেশন ইনস্টল হয়ে গেলে, নিম্নলিখিত কমান্ডটি প্রবেশ করুন:

nmap -sn 192.168.1.0/24

এটি আপনাকে দেখায় যে 192.168.1.0 এবং 192.168.1.255 এর মধ্যে কোন হোস্ট নেটওয়ার্কে পিংয়ের অনুরোধগুলিতে প্রতিক্রিয়া জানিয়েছিল।


এনম্যাপের পুরানো সংস্করণগুলির জন্য, ব্যবহার করুন -sP:

nmap -sP 192.168.1.0/24

অতিরিক্ত রেফারেন্সের জন্য, নিম্নলিখিত পৃষ্ঠাগুলি দেখুন:

এনএমএএপি ইনস্টলেশন গাইড

এনএমএএপ রেফারেন্স গাইড

এটি শিখতে খুব দরকারী সরঞ্জাম।


2
সমস্ত হোস্ট পিংসে সাড়া দেয় না। এআরপি হ'ল উপায়, কমপক্ষে আইপিভি 4-এ।
মার্সিন কামিনস্কি

3
আমার জন্য পর্যাপ্ত পরিমাণে এবং এটি ইন্টারনেটে কাজ করে

1
এটি কি কেবল আমার কম্পিউটার, বা এই আদেশটি চিরকালের জন্য চালিত হয়?
জনমার্লিনো

4
দ্রষ্টব্য, এনএম্যাপ স্ক্যানের গতি বাড়ানোর জন্য আপনাকে -T4 (গতি) এবং -n (কেবলমাত্র সংখ্যাযুক্ত) পতাকা যুক্ত করা উচিত।
সের্গেই কলডিয়াজনি

3
মনে রাখবেন nmap কমান্ডের জন্য আপনার sudo দরকার , অন্যথায় শূন্য ফলাফল ফিরে আসে।
মেশিনাদিক্ট

40

আপনার নেটওয়ার্কের সমস্ত কম্পিউটার যদি উবুন্টু বা অন্য কোনও বিতরণ যা avahi-daemon( ডিএনএস-এসডি ) ব্যবহার করে তবে আপনি সেগুলির একটি বিস্তারিত তালিকা (হোস্টনাম এবং আইপি ঠিকানা সহ) পেতে পারেন:

avahi-browse -rt _workstation._tcp

আপনি যদি আপনার নেটওয়ার্কে ব্যবহৃত সমস্ত আইপি ঠিকানা জানতে চান তবে আপনি এটি ব্যবহার করতে পারেন arp-scan:

sudo arp-scan 192.168.1.0/24

এটি ডিফল্টরূপে ইনস্টল না হওয়ায় আপনাকে এটি ইনস্টল করতে হবে sudo apt-get install arp-scanarp-scanস্থানীয় নেটওয়ার্কে এআরপি প্যাকেটগুলি প্রেরণ করুন এবং প্রাপ্ত প্রতিক্রিয়াগুলি প্রদর্শন করে, সুতরাং এটি এমনকি ফায়ারওয়াল্ড হোস্টগুলি দেখায় (এটি আইপি প্যাকেটের উপর ভিত্তি করে ট্র্যাফিক অবরোধ করে)।


3
এই আদেশটি অবশ্যই উপরেরটির চেয়ে ভাল। এনএম্যাপ চালানো যুগে যুগে সময় লেগেছে, তবে এটি নির্দিষ্ট নেটওয়ার্কে নোডের সাথে সাথে তাত্ক্ষণিকভাবে উত্তর দিয়েছে।
জনমারলিনো

3
আমার ক্ষেত্রে, প্রায়শই, arp-scanআমার ওয়্যারলেস নেটওয়ার্কের সাথে সম্পর্কিত সমস্ত ডিভাইস খুঁজে পায় না। এখন, উদাহরণস্বরূপ, sudo arp-scan 192.168.2.0/242 ফলাফল (.1 এবং .1) nmap -sn 192.168.2.0/24দেখায় , যখন 4 ফলাফল (.1, .2, .3 এবং .4) দেখায়। সুতরাং, মনে হয় এটি nmapআরও নির্ভুল (আমি নিশ্চিতভাবে জানি যে নেটওয়ার্কে 4 টি ডিভাইস সংযুক্ত রয়েছে)। কেন?
tigerjack89

2
সম্ভবত আমি অন্য প্রশ্নের মন্তব্যে উত্তরটি পেয়েছি। "এটি লক্ষ্য করা উচিত যে কিছু ডিভাইসগুলি চালু না করা পর্যন্ত সেগুলি প্রদর্শিত না হতে পারে screen পর্দা চালু না হওয়া পর্যন্ত আমার নেক্সাস 4 প্রদর্শিত হবে না।" তবে এটি আকর্ষণীয় যে একই ডিভাইসগুলি সর্বদা থেকে পিংগুলিতে প্রতিক্রিয়া জানায় nmap
tigerjack89

arp-scanসুন্দর !
ফরজাগ্রীন

17

পাঠকের জন্য নোট : মূল উত্তরটি কিছুক্ষণ আগে পোস্ট করা হয়েছিল এবং যখন আমি কেবল শেল স্ক্রিপ্টিং শিখছিলাম। একটি নতুন এবং উন্নত স্ক্রিপ্টের জন্য নীচে পুনর্বিবেচিত সংস্করণটি দেখুন যা আরও দ্রুত সম্পাদন করে।

আসল উত্তর

nmapআমার # 1 পছন্দ হতে পারে, কিন্তু আপনি এটি না থাকলে কি হবে? ডিআইওয়াই উপায়টি একটি পিং স্ক্রিপ্টের সাথে থাকবে যা নেটওয়ার্কে প্রতিটি সম্ভাব্য আইপি ঠিকানার মাধ্যমে ম্যানুয়ালি চলে। আমাদের এখানে যা আছে ঠিক সেই সময়েই, যেখানে আমরা ঠিকানার মধ্যে শেষ সংখ্যাটি সেট করি, ঠিকানায় নিঃশব্দ একক পিং করি, কমান্ডটি সফল হয় কিনা তা পরীক্ষা করে দেখুন (এবং যদি এটি সফল হয় তবে হোস্টটি অবশ্যই আপ হবে) এবং printfবিবৃতি। দ্রুত এবং নোংরা উপায়, এটি লিখতে আমাকে প্রায় 10 মিনিট সময় নিয়েছে তবে রানটাইম যদিও কিছুটা ধীর হতে পারে।

#!/bin/sh
# set -x
NUM=1

while [ $NUM -lt 256  ];do 
    ping -q -c 1 192.168.0.$NUM > /dev/null 
    RESULT=$(echo $?)
    if [ $RESULT -eq 0 ]; then 
        printf 192.168.0.$NUM"\n"
    fi
    NUM=$(expr $NUM + 1)
done

পুনরায় দেখা উত্তর

আমি মূলত এই উত্তরটি ২০১৫ সালের আগস্টে পোস্ট করেছি then তখন থেকে আমি শেল স্ক্রিপ্টিং সম্পর্কে আরও কিছুটা শিখেছি এবং আমি একবার এই স্ক্রিপ্টটি দেখেছি, আমি মনে করেছি যে কয়েকটি উত্তর সংশোধন করার জন্য এই উত্তরটি পুনর্বিবেচনা করা ভাল ধারণা হবে। এখানে কয়েকটি ধারণা দেওয়া হল:

  • স্ক্রিপ্টটি অবশ্যই ধীর এবং pingহোস্টের প্রতিক্রিয়ার জন্য অপেক্ষা করছে। ডিফল্টরূপে, pingদুই RTT, কিভাবে ঘনবসতিপূর্ণ আপনার নেটওয়ার্ক, এবং যতদূর আমি বুঝতে বিভিন্ন TCP প্রোটোকল অপেক্ষার সময় প্রতিটি সময় দ্বিগুণ উপর নির্ভর করে করতে, যার জন্য (অন্তত অনুযায়ী এই )। সুতরাং আমরা পতাকা pingসহ সময় বেরিয়ে যেতে পারে -w 1। যেহেতু আমাদের 256 ঠিকানা রয়েছে এবং আমরা প্রতিটি ঠিকানার জন্য 1 সেকেন্ড ধরে নিয়েছি, স্ক্রিপ্টটি প্রায় 256/60 = 4.27 মিনিট সময় নেয়।

  • একটি কমান্ড করা এবং তারপরে এর প্রস্থান স্থিতি ক্যাপচার করা $?আসলে প্রয়োজনীয় ছিল না। দ্য if ... then;...fiকমান্ড সরাসরি কাজ করতে পারে। অন্য কথায়, এটি করার জন্য এটি যথেষ্ট:

    if ping -w 1 -q -c 1 192.168.0.$NUM > /dev/null ;
    then
         <some other code here>
    fi
    
  • printfকমান্ড তাই হিসাবে পুনর্লিখিত করা যেতে পারে:

    printf "IP %s is up\n" 192.168.0."$NUM"
    

    এটি আরও একটি স্টাইলিস্টিক পরিবর্তন, তবে এটি পরিবর্তনশীল printfউদ্ধৃতি সহ অন্যান্য ভাষাগুলির মধ্যে কীভাবে কাজ করে এবং দেখতে কেমন তার সাথে সামঞ্জস্য "$NUM"। এখানে উদ্ধৃতি দেওয়ার প্রয়োজন নেই - যেহেতু আমরা কেবল সংখ্যার সাথেই কাজ করছি, একটি ভেরিয়েবলের স্পেস থাকার কারণে আমাদের শব্দের বিভাজন সম্পর্কে ধারণা করার দরকার নেই।

  • আমরা বেশ কয়েকটি ব্যাকগ্রাউন্ড প্রক্রিয়া চালিত করতে পারলে আরও ভাল পারফরম্যান্সের উন্নতি অর্জন করা যেতে পারে। নীচের স্ক্রিপ্ট সম্পাদনা ঠিক তা করে। আমি করা pingএবং printfএকটি ফাংশন মধ্যে, pingf(হ্যাঁ, গতানুগতিক নাম, আমি জানি)। এখন, এখানে একটি একক mainফাংশন রয়েছে যা লুপিং এবং কলিং করে pingf

#!/bin/sh
# Uncomment for debugging
#set -x
pingf(){
    if ping -w 2 -q -c 1 192.168.0."$1" > /dev/null ;
    then 
        printf "IP %s is up\n" 192.168.0."$1"
    fi
}

main(){

    NUM=1
    while [ $NUM -lt 255  ];do 
        pingf "$NUM" &
        NUM=$(expr "$NUM" + 1)
    done
    wait
}

main

আর কতটা ভাল কাজ করে? খারাপ না, আসলে, কয়েক সেকেন্ড সময় নেয়।

$ time ./ping_script.sh                                                                      
IP 192.168.0.1 is up
IP 192.168.0.101 is up
IP 192.168.0.27 is up
IP 192.168.0.29 is up
    0m02.50s real     0m00.01s user     0m00.12s system

জিনিষ মনে রাখা

  • উইন্ডোজ (উইন্ডোজ since এর পর থেকে, আমি মনে করি) আইসিএমপি প্রতিধ্বনির অনুরোধগুলিতে সাড়া দিতে শুরু করেছে। জিজ্ঞাসা উবুন্টু এবং সাজানোর অন্যান্য সাইটগুলিতে সে সম্পর্কে বেশ কয়েকটি প্রশ্ন রয়েছে "আরে, আমার লিনাক্স কম্পিউটারটি পিন করা যেতে পারে, তবে উইন্ডোজ নয়, তার কী হবে?" শুধু এই সত্যটি সম্পর্কে সচেতন থাকুন যে নতুন উইন্ডোজ সংস্করণগুলির জন্য আপনার আইসিএমপি প্রতিধ্বনির প্রতিক্রিয়া সক্ষম করতে হবে।

2
আমি এই ধরণের সমাধান পছন্দ করি
21z50 এ সেজিনিস

15

নেটডিস্কভার আপনার উত্তর হতে পারে।

টার্মিনালের মাধ্যমে ইনস্টল করতে:

sudo apt-get install netdiscover

উদাহরণস্বরূপ ব্যবহার:

sudo netdiscover -r 192.168.1.0/24 -i wlan0

ম্যাক অ্যাড্রেসিস সহ একটি আইপি আপনার টার্মিনালে প্রদর্শিত হবে। স্ক্রিনশট দেখুন

এখানে চিত্র বর্ণনা লিখুন

আশা করি আপনাকে সাহায্য করবে

উল্লেখ


খুব বগি মনে হচ্ছে, প্রথমে চেষ্টা করুন এবং*** buffer overflow detected ***: netdiscover terminated
পাবলো এ

এই সরঞ্জামটি আমার নেটওয়ার্কে বেশ কয়েকটি জিনিস খুঁজে পায় না।
অ্যান্থনি

4

fpingআইসিএমপি এর মাধ্যমে নেটওয়ার্কে একাধিক হোস্ট স্ক্যান করার একটি দুর্দান্ত সরঞ্জাম। যদি ইনস্টল না করা থাকে তবে আপনি এটি দ্বারা এটি ইনস্টল করতে পারেন:

sudo apt-get install fping

fping আইসিএমপি ECHO_REQUEST প্যাকেট প্রেরণ করে এবং হোস্টটি যদি হোস্ট থেকে ECHO_RESPONSE পায় তবে হোস্টটিকে আপ হিসাবে চিহ্নিত করুন mark

উদাহরণস্বরূপ, সাবনেটের হোস্টগুলি স্ক্যান 192.168.1.0/24করতে, আপনি এটি করতে পারেন:

fping -g 192.168.1.0/24

হোস্টের একটি নির্দিষ্ট নম্বর থেকে যেমন 192.168.1.15করা 192.168.1.140:

fping -g 192.168.1.15 192.168.1.140

fping অত্যন্ত কনফিগারযোগ্য যেমন কয়টি প্যাকেট প্রেরণ করা হবে, প্রতিক্রিয়ার অপেক্ষা করার সময়, আউটপুট ফর্ম্যাট ইত্যাদি

man fpingআরও ধারণা পেতে চেক করুন ।

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