मैं टर्मिनल से अधिमानतः जुड़े नेटवर्क में सभी आईपी को कैसे सूचीबद्ध कर सकता हूं?


219

उबंटू 10.10 का उपयोग करते हुए, मैं सोच रहा था कि क्या कोई कमांड लाइन कमांड थी जो नेटवर्क से जुड़े सभी उपकरणों के आईपी को सूचीबद्ध कर सकती है?

मैं उदाहरण के लिए इसका उपयोग करता हूं, अपने घर नेटवर्क से जुड़े सभी कंप्यूटरों को सूचीबद्ध करने के लिए। आदर्श रूप में, इसे कमांड लाइन की आवश्यकता है क्योंकि मैं इसे C ++ से चला रहा हूं।

कोई विचार?




जवाबों:


243

की जाँच करें एआरपी स्कैन आदेश - आप शायद इसे स्थापित करने जैसे होंगे:

sudo apt-get install arp-scan

http://manpages.ubuntu.com/manpages/hardy/man1/arp-scan.1.html

और आगे विस्तार देने के लिए:

sudo arp-scan --interface=eth0 --localnet

जहाँ eth0 आपकी डिवाइस है। आप के साथ अपने डिवाइस पा सकते हैं:

ifconfig

पूर्ण धन्यवाद। ठीक वैसा ही प्रारूप देता है जैसा मुझे चाहिए।
क्रिस्टोफर ग्विलियम्स 14

1
OSX पर भी पूरी तरह से काम करता है! बीआरई के साथ स्थापित किया गया था, और इंटरफेस 0 था, एथ0 के बजाय, लेकिन महान काम करता है।
nthonygreen 16

6
यदि आपके wlan0बजाय अपने वाईफाई नेटवर्क का उपयोग करने से जुड़ा हुआ है eth0
नील

3
क्या आप इसे होस्टनामों के साथ-साथ आईपी पते को सूचीबद्ध करने के लिए प्राप्त कर सकते हैं?
user1527227

2
यह ध्यान देने योग्य है कि यह एआरपी कैश का उपयोग नहीं करता है: यह एक वास्तविक स्कैन करता है। अधिकांश नैम्प स्कैन के विपरीत, यह परत 3 सीमाओं को पार नहीं कर सकता है, जो कि आमतौर पर आप इस परिदृश्य में चाहते हैं। (दूसरे शब्दों में, यह आपके सबनेट तक सीमित है।)
ज़ेनेक्सर

112

नैमप का प्रयोग करें। उदाहरण: nmap -sn 10.10.10.0/24arp cache केवल उन लोगों को बताएगा जिन्हें आपने हाल ही में संपर्क करने का प्रयास किया है।


2
क्या 10.10.10.0 मेरा दिया गया आईपी है? इस मामले में 24 क्या है? धन्यवाद।
kolonel

4
@kolonel यह सिर्फ एक उदाहरण है। आपको इसे अपने नेटवर्क के साथ स्थानापन्न करना चाहिए। 24 सबनेट मास्क का "स्लैश नोटेशन" है। इसका मतलब बाईं ओर से 24 बिट्स का उपयोग करें। यह 255.255.255.0 के बराबर है।
कीथ

2
@ क्या आप जानते हैं कि मैं अपने नेटवर्क पते का उपयोग कैसे करूंगा? या यह अंत में 0/24 के साथ सिर्फ मेरा आईपी है?
टीएमएच


20

विंडोज़ में यह " arp -a" मेरा मानना ​​है कि लिनक्स में इसके बराबर " arp -e" होगा।

यह जानकारी arp के लिए मैन पेज से मिल सकती है:

arp with no mode specifier will print the current content of the table.
-e : Use default Linux style output format (with fixed columns).

ऐसा लगता है कि यह काम करता है (एक नाटक की आवश्यकता हो सकती है क्योंकि मैं एक सार्वजनिक नेटवर्क पर हूं, इसलिए यह केवल नेटवर्क पर सभी सर्वरों को सूचीबद्ध करने के लिए लगता है।
क्रिस्टोफर ग्विलियम्स

अगर मैं एक होम नेटवर्क पर हूं, तो क्या यह सिर्फ मेरे राउटर से जुड़े उपकरणों को सूचीबद्ध करेगा? धन्यवाद!
क्रिस्टोफर ग्विलियम्स

1
वह आदेश केवल होस्ट्स वर्तमान arp कैश में उपकरणों को सूचीबद्ध करेगा और यह केवल वही होगा जो होस्ट ने हाल ही में संपर्क किया है।
लिंकर 3000

दोनों लिनक्स पर काम करते हैं, लेकिन arp -aसभी (वैकल्पिक) बीएसडी शैली में प्रदर्शित होते हैं। Simpy रनिंग बीक्युस को चलाने arpके समान है arp -eजो डिफ़ॉल्ट है।
सरलगामी

15

यदि आपका नेटवर्क है 192.168.0.0/24, तो निम्नलिखित कोड के साथ एक निष्पादन योग्य फ़ाइल बनाएं; 192.168.0अपने वास्तविक नेटवर्क में परिवर्तन करें ।

#!/bin/bash
for ip in 192.168.0.{1..254}; do
  ping -c 1 -W 1 $ip | grep "64 bytes" &
done

हाय एंडर्स ... उपयोगकर्ता का नेटवर्क 192.168.0.0/24 नहीं हो सकता है; मैंने नोट कर लिया। साइट के स्वरूपण को एक नंगे # पसंद नहीं किया !, और इसलिए कोड स्निपेट के प्रारूपण को क्लोब किया गया: कोड दर्ज करते समय, ब्लॉकक्वाट या प्रीफॉर्मेट किए गए टेक्स्ट बटन का उपयोग करें, और कैरेट रिटर्न, टैब के रूप में, इसे सबमिट करने से पहले उचित प्रारूपण के लिए अपने उत्तर की समीक्षा करें। और स्थान छीन लिए गए होंगे।
नेविन विलियम्स

साथ ही, एक स्क्रिप्ट की आपूर्ति करते समय जिसे एक फ़ाइल में डालने और निष्पादन योग्य बनाने की आवश्यकता होती है, केवल कट और पेस्ट किए जाने के बजाय, यह संभवतः सबसे अच्छा है कि आप इसे निर्दिष्ट करें; यह कुछ के लिए स्पष्ट नहीं हो सकता है कि आपके समाधान को लागू करने के लिए सभी की क्या आवश्यकता है।
नेविन विलियम्स

12
तकनीकी रूप से, यह केवल उन मेजबानों को वापस करेगा जो पिंग का जवाब देते हैं। मेजबान हो सकते हैं जो जुड़े हुए हैं, लेकिन ICMP प्रतिध्वनि अनुरोधों का उत्तर नहीं दे रहे हैं। साथ ही, एक प्रसारण पते को निर्दिष्ट करके एक पैकेट को पूरे नेटवर्क पर प्रसारित किया जा सकता है, जो आईपी नेटवर्क में अंतिम पता है: पिंग -c 1 -W 1 192.168.0.255 लूप के लिए समान होगा।
नेविन विलियम्स

@ नीविनविलियम्स (आवश्यक-बी, हटाए गए -W अधिक प्रतीक्षा करने के लिए) ping -b -c 1 192.168.0.255परिणाम "1 पैकेट प्रेषित, 0 प्राप्त, 100% पैकेट नुकसान, समय 0ms"
कुंभ पावर

13

स्थापित करने का प्रयास करें nmap( sudo apt-get install nmap) और अपने आईपी पते के पहले तीन भागों के साथ nmap 192.168.1.0/24प्रतिस्थापन टाइप 192.168.1करें (उपयोग करके पता करें ip addr)।

आप किसी नेटवर्क के रन ping 192.168.1.255(फिर से प्रतिस्थापन 192.168.1) द्वारा थोड़ा कम सटीक (मेरे अनुभव में) मैप प्राप्त कर सकते हैं , जो नेटवर्क पर प्रत्येक मशीन को जारी करना चाहिएping , लेकिन, मेरे अनुभव में, हमेशा सही ढंग से कार्य नहीं करता है।


वास्तव में, कोई भी उत्तर हमेशा सही ढंग से काम नहीं करेगा। आईपी ​​को इस आवश्यकता को ध्यान में रखते हुए डिजाइन नहीं किया गया था, और निजी वीएलएएन जैसी चीजें हैं जो एक ही लैन पर किसी अन्य होस्ट को ढूंढना असंभव बनाती हैं।
रॉन मौपिन

2

एक गठजोड़ पर निम्नलिखित का उपयोग कर के साथ आया tmuxके रूप में arp-scanरेपो में नहीं है, लेकिन nmapपहले से स्थापित आया, बस आईपी पतों प्रदर्शित करता है:

nmap -sn 192.168.1.1-254/24 | egrep "scan report" | awk '{print $5}'

1

कनेक्ट किए गए उपकरणों की अधिक कॉम्पैक्ट सूची के लिए:

nmap -sL 192.168.0.* | grep \(1

स्पष्टीकरण।

nmap -sL 192.168.0.* सबनेटवर्क में सभी आईपी को सूचीबद्ध करेगा और उन लोगों को चिह्नित करेगा, जिनके नाम हैं:

Nmap scan report for 192.168.0.0
Nmap scan report for Dlink-Router.Dlink (192.168.0.1)
Nmap scan report for 192.168.0.2
...
Nmap scan report for android-473e80f183648322.Dlink (192.168.0.53)
...
Nmap scan report for 192.168.0.255

चूंकि सभी दिलचस्प रिकॉर्ड कोष्ठक (और अंक से शुरू होते हैं 1, हम उसके लिए फ़िल्टर करते हैं | grep \(1(कोष्ठक से बचने के लिए बैकस्लैश की आवश्यकता होती है)

क्वर्क
खबरदार कि अगर दो उपकरणों का एक ही नाम है, nmapकेवल एक ही दिखाएगा, जो कि पिछले राउटर से जुड़ा था


यदि आपके पास दो प्रश्नों के सटीक उत्तर हैं, तो यह हो सकता है कि डुप्लिकेट उत्तरों को पोस्ट करने के बजाय प्रश्नों को ध्वजांकित करने पर विचार किया जाए। इस तरह से ज्ञान को साझा किया जा सकता है क्योंकि समान प्रश्न एक साथ जुड़े हुए हैं।
Mokubai

1
@ मोकूबाई आप सही हैं, मैंने ओपी पर टिप्पणी जोड़ दी है। यह एक दिलचस्प समस्या को दर्शाता है। एक त्वरित खोज ने 4 नेटवर्क साइटों (एसयू, उबंटू, एसएफ, यूनिक्स) के पार 6 डुप्लिकेट (यह क्यू और 5 लिंक) की खोज की। यकीन है कि वहाँ बहुत कुछ कर रहे हैं! इससे मैं कैसे निपटूं ? आदर्श रूप से, इन 6 पदों में से प्रत्येक को 5 अन्य लोगों से जोड़ना चाहिए। इन सभी कड़ियों को हाथ से जोड़ना स्पष्ट रूप से पैमाना नहीं है। तो, अब के लिए मैं इस पोस्ट से जुड़ा हूं (सबसे ज्यादा अपवित्र)। एक और समस्या यह है कि एसयू पर क्यू के डुप्लिकेट के रूप में आस्कयूबंटु पर क्यू को चिह्नित करना असंभव है। हम्म ... शायद, यह पहले से ही मेटा पर चर्चा की गई थी?
अलेक्जेंडर मालाखोव

Centos 7 पर मेरे लिए काम नहीं करता है, बस बिना नाम वाले नेटवर्क में हर संभव आईपी पते को सूचीबद्ध करता है। arp-scan ने मेरे लिए काम किया।
जेफ

0

एंडर्स लारसन के जवाब पर विस्तार से -

#!/bin/bash
function scan ()
{
    for ip in $1.{1..254}; do
        ping -c 1 -W 1 $ip &
    done | sed -nE 's:^.* from ([0-9.]+).*time=(.*s)$:\1 (\2):p'
}

if [ $1 ]; then
    for baseip; do
        scan $baseip
    done
else
    scan 192.168.1
fi
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.