किसी नेटवर्क पर सभी उपयोग किए गए आईपी पते कैसे खोजें


94

मेरे काम में कंप्यूटर का एक बहुत कुछ है और मैं एक मजाक बनाना चाहता हूं। मैं कंप्यूटर को नेटवर्क पर बंद कर सकता हूं, लेकिन आईपी पते ढूंढना मेरे लिए कठिन है।

मैं 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 के बीच नेटवर्क पर पिंग अनुरोधों का जवाब दिया।


Nmap के पुराने संस्करणों के लिए, उपयोग करें -sP:

nmap -sP 192.168.1.0/24

अतिरिक्त संदर्भों के लिए, निम्नलिखित पृष्ठ देखें:

NMAP इंस्टॉलेशन गाइड

NMAP संदर्भ गाइड

यह सीखने के लिए बहुत उपयोगी उपकरण है।


2
सभी मेजबान पिंग का जवाब नहीं देते हैं। एआरपी जाने का रास्ता है, कम से कम आईपीवी 4 में।
मर्किन कमिंसकी

3
मेरे लिए यह काफी है और यह इंटरनेट पर काम करता है

1
क्या यह सिर्फ मेरा कंप्यूटर है, या यह कमांड हमेशा के लिए चलती है?
JohnMerlino

4
ध्यान दें, नैम स्कैन को गति देने के लिए आपको -T4 (गति) और -n (केवल संख्यात्मक) झंडे जोड़ने चाहिए।
सर्गी कोलोडियाज़नी

3
याद रखें कि आपको nmap कमांड के लिए sudo की आवश्यकता है , अन्यथा शून्य परिणाम वापस आ जाता है।
मशिनहेडिक्ट

40

यदि आपके नेटवर्क के सभी कंप्यूटर उबंटू या कोई अन्य वितरण है जो avahi-daemon( DNS-SD ) का उपयोग करता है , तो आप उन्हें (hostname और IP पते के साथ) विस्तृत सूची प्राप्त कर सकते हैं:

avahi-browse -rt _workstation._tcp

यदि आप अपने नेटवर्क में उपयोग किए गए सभी आईपी पते जानना चाहते हैं, तो आप इसका उपयोग कर सकते हैं arp-scan:

sudo arp-scan 192.168.1.0/24

चूंकि यह डिफ़ॉल्ट रूप से स्थापित नहीं है, इसलिए आपको इसे स्थापित करना होगा sudo apt-get install arp-scanarp-scanस्थानीय नेटवर्क पर ARP पैकेट भेजें और प्राप्त प्रतिक्रियाओं को प्रदर्शित करता है, इसलिए यह फ़ायरवॉल होस्ट (IP पैकेट पर आधारित ट्रैफ़िक को ब्लॉक करता है) भी दिखाता है।


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 डिवाइस हैं)। ऐसा क्यों है?
टाइगरजैक89

2
हो सकता है कि मुझे किसी अन्य प्रश्न का उत्तर टिप्पणी में मिले। "यह ध्यान दिया जाना चाहिए कि कुछ उपकरणों को तब तक नहीं दिखाया जा सकता है जब तक कि वे चालू नहीं होते हैं। मेरा नेक्सस 4 तब तक दिखाई नहीं देगा जब तक कि स्क्रीन चालू न हो।" हालांकि, यह दिलचस्प है कि समान डिवाइस हमेशा पिंग से प्रतिक्रिया देते हैं nmap
टाइगरजैक89

arp-scanअच्छा है !
forzagreen

17

पाठक को ध्यान दें : मूल उत्तर कुछ समय पहले पोस्ट किया गया है और उस समय जब मैं केवल शेल स्क्रिप्टिंग सीख रहा था। एक नई और बेहतर स्क्रिप्ट के लिए नीचे दिया गया पुनरीक्षित संस्करण देखें जो बहुत तेज़ी से कार्य करता है।

मूल उत्तर

nmapमेरी # 1 पसंद होगी, लेकिन अगर आपके पास नहीं है तो क्या होगा? DIY तरीका एक पिंग स्क्रिप्ट के साथ होगा जो नेटवर्क पर प्रत्येक संभव आईपी पते के माध्यम से जाता है। हमारे पास यहाँ क्या है जबकि लूप है, जहां हम पते में अंतिम संख्या निर्धारित करते हैं, पते पर मूक सिंगल पिंग बनाते हैं, जांचें कि कमांड सफल हुआ या नहीं (और अगर यह सफल हुआ, तो होस्ट स्पष्ट रूप से ऊपर है), और 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

पुनः उत्तर दिया गया

मैंने मूल रूप से 2015 के अगस्त में इस उत्तर को पोस्ट किया था। तब से मैंने शेल स्क्रिप्टिंग के बारे में थोड़ा और सीखा है, और मैंने एक बार इस स्क्रिप्ट को देखा, तो मुझे लगा कि इस उत्तर को कुछ सुधारों को जोड़ने के लिए फिर से सोचना अच्छा होगा। यहाँ कुछ विचार हैं:

  • स्क्रिप्ट स्पष्ट रूप से धीमी है और 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और (हां, कॉर्न नाम, मुझे पता है) डाल दिया । अब, एक एकल फ़ंक्शन भी है जो लूपिंग और कॉलिंग करता है ।printfpingfmainpingf

#!/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

ध्यान रखने योग्य बातें

  • विंडोज (विंडोज 7 के बाद से, मुझे लगता है) ने आईसीएमपी गूंज अनुरोधों के लिए प्रतिक्रिया को अवरुद्ध करना शुरू कर दिया है। उबंटू और सॉर्ट की अन्य साइटों के बारे में पूछने पर काफी कुछ सवाल हैं "अरे, मेरे लिनक्स कंप्यूटर को पिंग किया जा सकता है, लेकिन विंडोज वाले नहीं, इसके साथ क्या हो रहा है?" बस इस तथ्य से अवगत रहें कि नए विंडोज संस्करणों के लिए आपको ICMP प्रतिध्वनि की प्रतिक्रिया को सक्षम करने की आवश्यकता है।

2
मुझे इस तरह का समाधान पसंद है
21

15

Netdiscover आपका जवाब हो सकता है।

टर्मिनल के माध्यम से स्थापित करने के लिए:

sudo apt-get install netdiscover

उदाहरण का उपयोग:

sudo netdiscover -r 192.168.1.0/24 -i wlan0

MAC Addreses वाला एक IP आपके टर्मिनल पर दिखाई देगा। स्क्रीनशॉट देखें

यहाँ छवि विवरण दर्ज करें

आशा है कि आप मदद करते हैं

संदर्भ


बहुत छोटी लगती है, पहले कोशिश करो और*** buffer overflow detected ***: netdiscover terminated
पाब्लो ए

यह उपकरण मेरे नेटवर्क पर कई चीज़ें नहीं खोजता है।
एंथनी

4

fpingICMP के माध्यम से एक नेटवर्क पर कई मेजबानों को स्कैन करने के लिए एक महान उपकरण है। यदि स्थापित नहीं है, तो आप इसे स्थापित कर सकते हैं:

sudo apt-get install fping

fping ICMP ECHO_REQUEST पैकेट भेजता है और यदि होस्ट से ECHO_RESPONSE मिलता है तो इसे होस्ट के रूप में चिह्नित करें।

उदाहरण के लिए, सबनेट के मेजबानों को स्कैन करने के लिए, 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अधिक विचार प्राप्त करने के लिए जाँच करें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.