कमांड लाइन पर नेटवर्क पर अन्य कंप्यूटरों का पता लगाना


30

मुझे अपने घर के नेटवर्क पर मैक का एक मुट्ठी भर मिला है, और बाहर से उनमें से केवल एक पर शेल पहुंच है। मैं यह कैसे पता लगा सकता हूं कि अन्य मशीनों का आईपी पता क्या है?

जवाबों:


39

arp -aअपने कंप्यूटर की वर्तमान arp टेबल देखने की कोशिश करें । यह केवल उन आईपी पते को दिखाएगा जिनके साथ आपके कंप्यूटर ने बातचीत की है। इस तरह आउटपुट (मेरे नेटवर्क पर मैक पतों को छिपाने के लिए थोड़ा अस्पष्ट)

$ arp -a
? (10.1.168.1) at xx:xx:9e:82:ab:f6 on en1 ifscope [ethernet]
? (10.1.168.16) at xx:xx:29:d3:17:8 on en1 ifscope [ethernet]
? (10.1.168.115) at xx:xx:2:4f:76:14 on en1 ifscope [ethernet]
? (10.1.168.131) at xx:xx:6b:d0:36:a5 on en1 ifscope [ethernet]
? (10.1.168.134) at (incomplete) on en1 ifscope [ethernet]
? (10.1.168.137) at xx:xx:65:46:cd:b8 on en1 ifscope [ethernet]
? (10.1.168.255) at ff:ff:ff:ff:ff:ff on en1 ifscope [ethernet]
? (192.168.4.255) at ff:ff:ff:ff:ff:ff on vmnet8 ifscope [ethernet]
? (192.168.110.255) at (incomplete) on vmnet1 ifscope [ethernet]

यदि आपके पास आगे की जानकारी नहीं है कि कौन सा कंप्यूटर है, तो आप मैक एड्रेस लुकअप के माध्यम से नेटवर्क कार्ड के निर्माताओं की पहचान करके थोड़ी अधिक जानकारी प्राप्त कर सकते हैं ।


12
खेद है कि इसे सही मानने में लगभग 4 साल लग गए।
जॉन हदद

इसका क्या मतलब है " arp -aकेवल उन आईपी पते को दिखाएगा जिनके साथ आपके कंप्यूटर ने बातचीत की है।" ? क्या मुझे प्रसारण (192.168.110.255) को पहले पिंग करना चाहिए और हर डिवाइस से प्रतिक्रिया प्राप्त करनी चाहिए और फिर पूरी डिवाइस प्राप्त करने के लिए arp का उपयोग करना चाहिए क्योंकि मैंने अभी तक सभी डिवाइस को पिंग / पिंग किया है?
वीशी ज़ेंग

10

अन्य सभी मशीनों को एक ही प्रसारण डोमेन में माना जाता है क्योंकि आपके पास जिस तक पहुंच है, प्रसारण पते को पिंग करना अक्सर पर्याप्त होगा। यह उन मशीनों को नहीं खोजेगा जो सो रही हैं, और न ही पिंग का जवाब देने के लिए कॉन्फ़िगर किया गया है, और न ही वे जो पिंग का जवाब देंगे, लेकिन पिंग को प्रसारित करने के लिए नहीं।

% ifconfig -a | grep broadcast
        inet 192.168.1.241 netmask 0xffffff00 broadcast 192.168.1.255
% ping -i 5 -c 2 192.168.1.255
PING 192.168.1.255 (192.168.1.255): 56 data bytes
64 bytes from 192.168.1.241: icmp_seq=0 ttl=64 time=0.393 ms
64 bytes from 192.168.1.254: icmp_seq=0 ttl=255 time=2.511 ms (DUP!)
64 bytes from 192.168.1.65: icmp_seq=0 ttl=64 time=5.810 ms (DUP!)
64 bytes from 192.168.1.255: icmp_seq=0 ttl=64 time=7.886 ms (DUP!)
64 bytes from 192.168.1.241: icmp_seq=1 ttl=64 time=0.312 ms

--- 192.168.1.255 ping statistics ---
2 packets transmitted, 2 packets received, +3 duplicates, 0% packet loss
round-trip min/avg/max/stddev = 0.312/3.382/7.886/3.010 ms

पहली और आखिरी प्रतिक्रिया लगभग हमेशा आपकी स्थानीय मशीन होगी। (DUP!)प्रतिक्रियाओं अन्य मशीनों से कर रहे हैं (हालांकि यह उदाहरण भी कुछ मशीन प्रसारण पता ही है, जो बहुत उपयोगी नहीं है के साथ प्रतिक्रिया दिखाने)।

आप सभी का प्रसारण पता भी आज़मा सकते हैं:

% ping -i 5 -c 2 255.255.255.255
PING 255.255.255.255 (255.255.255.255): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.392 ms
64 bytes from 192.168.1.254: icmp_seq=0 ttl=255 time=3.053 ms (DUP!)
64 bytes from 192.168.1.65: icmp_seq=0 ttl=64 time=8.685 ms (DUP!)
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.319 ms

--- 255.255.255.255 ping statistics ---
2 packets transmitted, 2 packets received, +2 duplicates, 0% packet loss
round-trip min/avg/max/stddev = 0.319/3.112/8.685/3.401 ms

यह उदाहरण कम cruft दिखाता है। सभी (DUP!)s अन्य मशीनें हैं और स्थानीय मशीन को आसानी से 127.0.0.1 के रूप में पहचाना जाता है।


8

आपके Mac में सभी होस्टनाम हैं, इसलिए आपको IP पते जानने की आवश्यकता नहीं है। इसके बजाय आप होस्टनाम का उपयोग करेंगे।

होस्टनाम आपके द्वारा कंप्यूटर को दिए गए किसी भी नाम पर आधारित हैं। इसलिए यदि कंप्यूटर को "जॉन का मैक" नाम दिया गया है, तो जिस होस्टनाम का आप उपयोग करेंगे, वह "जोंस-मैक.लोकल" जैसा है।

$ ssh jons-mac.local

यदि आप पहले से ही अपने कंप्यूटर के होस्टनामों को नहीं जानते हैं, तो आप उस कंप्यूटर पर साझाकरण वरीयताओं में कंप्यूटर के होस्टनाम का पता लगा सकते हैं, या आप dns-sd कमांड का उपयोग करके नेटवर्क पर अन्य कंप्यूटरों के होस्टनाम का पता लगा सकते हैं। यह कमांड आपको नेटवर्क सेवाओं को ब्राउज़ करने के लिए बोनजोर का उपयोग करता है; आपको केवल वे कंप्यूटर मिलेंगे जो वास्तव में कुछ नेटवर्क सेवा का विज्ञापन कर रहे हैं (जो, द्वारा और बड़े हैं, केवल वही हैं जो आप परवाह करते हैं)।

यदि आप ssh प्रदान करने वाले कुछ कंप्यूटर से कनेक्ट करना चाहते हैं, तो आप उपलब्ध कंप्यूटर का उपयोग करके पा सकते हैं:

dns-sd -B _ssh._tcp .

सामान्य तौर पर आप सेवा नामों का उपयोग करके विशेष सेवाएं प्रदान करने वाले मेजबानों की खोज कर सकते हैं: http://www.dns-sd.org/ServiceTypes.html

बोनजौर प्रोटोकॉल सभी सेवाओं के लिए ब्राउज़ करने की क्षमता भी प्रदान करता है , विशेष रूप से नहीं। आप विशेष सेवा के लिए ब्राउज़ करके ऐसा कर सकते हैं_services._dns-sd._udp

dns-sd -B _services._dns-sd._udp .

प्रश्न कमांड लाइन से नेटवर्क पर अन्य कंप्यूटरों को खोजने के बारे में पूछ रहा है, लेकिन आप GUI में dns-sd विज्ञापित सेवाओं को भी ब्राउज़ कर सकते हैं। उदाहरण के लिए Terminal.app> नया रिमोट कनेक्शन ... एक विंडो लाता है जो विज्ञापित ssh, sftp, ftp और telnet सेवाएं दिखाता है।


आप कितनी तेजी से इस कमांड dns-sd -B _ssh._tcp .को चलाने की उम्मीद कर सकते हैं ?
एजेपी

1
@AJP यदि कोई भी ssh सेवाएं विज्ञापित की जा रही हैं तो उसे तुरंत वापस करना शुरू कर देना चाहिए। लेकिन अगर 'खत्म' से आपका मतलब बाहर निकलता है, तो यह बाहर नहीं निकलता है; कमांड लंबे समय तक चलने वाली क्वेरी चलाता है और जब तक आप इसे नहीं मारते तब तक नेटवर्क से सेवाएं दिखाई देती हैं और गायब हो जाती हैं।
bames53

7

आप dns-sdLAN पर Bonjour क्वेरी करने के लिए उपयोग करने का प्रयास कर सकते हैं ।


3
मुझे लगता है कि यह जवाब ओएस एक्स विशिष्ट है और अतिरिक्त नेटवर्क विवरण प्राप्त करने से बचने के लिए मैं इस संबंध में (इस प्रश्न के संदर्भ में) परवाह नहीं करेगा। मेरी जरूरतों के लिए काम करने वाला विशिष्ट आदेश था:dns-sd -B _ssh._tcp .
स्टीवनहेडॉक्स

6

हो सकता है कि यह थोड़ा ज़्यादा हो लेकिन आप नैम्प का इस्तेमाल कर सकते हैं


1
हालांकि यह प्रश्न का उत्तर दे सकता है, यह एक बेहतर उत्तर होगा यदि आप कुछ स्पष्टीकरण प्रदान कर सकते हैं कि ऐसा क्यों होता है।
डेविडपोस्टिल

4

एक त्वरित सीएलआई एक लाइनर प्रत्येक आईपी पते के माध्यम से / 24 सबनेट पिंग के माध्यम से कदम। त्वरित और गंदे की तरह, लेकिन यह काम करता है।

for (( x=1; x <= 254; x++ )); do ping -c 3 192.168.0.$x; done

स्पष्टीकरण: सीमा बदलने के लिए, x = 1 को x = 130 में बदलें, या आप जो भी शुरू करना चाहते हैं, और अंत में 254, 135 को कहें।

for (( x=130; x <= 135; x++ ));

पिंग -c 3 को तीन पिंग भेजे जाते हैं। पिंग की संख्या को बदलने के लिए 3 को कुछ और के लिए बदलें, और पता श्रेणी को बदलने के लिए, 192.168.0 को कुछ और में बदलें।

do ping -c 30 10.10.0.$x;

1
आप बस ऐसा करने के लिए फप्पिंग का उपयोग कर सकते हैं:fping -ag 172.16.0.0/16
ɾǝʞǝʞ

यह मेरे लिए कुछ भी लेकिन त्वरित है ...
मैक्स विलियम्स

यह एक त्वरित और गंदा समाधान है। जैसा कि, यह सही उपकरण के अभाव में लागू करने के लिए त्वरित है जैसे कि nmap, और यह सही उपकरण के रूप में प्रदर्शन नहीं है, जैसे nmap। पिंगिंग मेजबानों को कुछ समय लग सकता है जब वे कोई प्रतिक्रिया नहीं देते हैं, और जब से यह मल्टीथ्रेडेड नहीं होता है, तो मेजबान को जवाब नहीं देने में कुछ समय लगेगा। प्लस साइड पर, इसे बैश के अलावा कुछ भी करने की आवश्यकता नहीं है।
किन्नर

2

यदि आप LAN में अन्य कंप्यूटरों का नाम जानते हैं, तो सबसे आसान तरीका उन्हें पिंग करना है:

$ ping foobar

Pinging foobar.lan [192.168.0.25] with 32 bytes of data:

Reply from 192.168.0.25: bytes=32 time<1ms TTL=64
Reply from 192.168.0.25: bytes=32 time<1ms TTL=64

यह आपके स्थानीय राउटर या डीएचसीपी सर्वर पर निर्भर हो सकता है। यदि नंगे होस्टनाम काम नहीं करता है, तो प्रयास करें .local (यानी, ping hostname.local )।

जाहिर है कि यह बड़ी LANs या गरीब यादों वाले लोगों के लिए अच्छा नहीं है।


1

यदि आप Macs का उपयोग कर रहे हैं, (10.5 या अधिक मानकर), तो डेस्कटॉप एक्सेस के लिए VNC को सक्षम करें और Flame.app का उपयोग करें।

http://husk.org/apps/flame/

यह वास्तव में एक छोटी सी उपयोगिता है जो आपको वास्तव में जल्दी से वास्तव में आपकी आवश्यकता है। केवल एक चीज यह है कि आपको SSH से अधिक दूर जाना होगा।


1

विंडोज के लिए:

1) लिखें: I / L% I के लिए (1,1,254) DO ping -w 30 -n 1 168.29.0।% I यह आपके स्थानीय नेटवर्क के सभी पते को पिंग करेगा

2) फिर लिखें: arp -a यह आपको उन सभी पते देगा जो उत्तर दिए गए थे


बेशक यह आपके स्थानीय नेटवर्क पते पर निर्भर करता है। मेरे मामले में यह 168.29.0.xxx है। आपका कुछ ऐसा हो सकता है जैसे 192.168.0.xxx
चावदार

1
आपका उत्तर विंडोज पर आधारित है जबकि ओपी ने कहा कि वह एक मैक का उपयोग कर रहा है। यदि आपका समाधान मैक पर काम करेगा तो क्या आप इसे अपने खाते या राज्य में ले जाने के लिए अपने प्रश्न को संपादित कर सकते हैं।
मैथ्यू विलियम्स

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