स्थानीय नेटवर्क पर सभी डिवाइस (आईपी एड्रेस, होस्टनाम, मैक एड्रेस) कैसे खोजें?


14

मैंने इससे संबंधित लगभग हर सूत्र को पढ़ा है, फिर भी किसी ने भी इस तरह की तालिका का उपयोग करना आसान नहीं बनाया है।

  IP Address     Hostname        MAC Address
  192.168.1.10 | myAppleTV     | 02:78:42:9b:bb:12
  192.168.1.10 | myiPhone      | b2:18:4a:3a:42:22
  192.168.1.10 | myiMac        | 09:17:a2:95:c4:00
  192.168.1.10 | myCanonPrinter| a0:ea:72:77:b4:aa

अधिकांश समय मैं उपयोग करता हूं arp -aऔर वहां भी है dns-sb, लेकिन उनमें से कोई भी जानकारी के 3 प्रमुख टुकड़ों का पता लगाना आसान नहीं बनाता है जब भी मैं नेटवर्क पर चारों ओर गड़बड़ कर रहा हूं, अर्थात, आईपी एड्रेस, होस्टनाम और मैक एड्रेस। मुझे आश्चर्य है कि कोई उपयोगिता नहीं है जो इसे पूरा करती है!


इस तरह की जानकारी मुख्य रूप से राउटर पर होने वाली है
user151019

जवाबों:


12

यदि तृतीय-पक्ष उपयोगिता का उपयोग करना आपके लिए कोई समस्या नहीं है, तो मैं इन्हें आज़माने की सलाह देता हूं:

arp-scan ( होमब्रे के माध्यम से उपलब्ध )

brew install arp-scan
arp-scan --localnet

उंगलियों (डाउनलोड और "डेस्कटॉप एंबेडेड सीएलआई" पैकेज को ऊँगली से या होमब्रे के माध्यम से स्थापित करें brew cask install fing)

sudo fing -r 1 -d true -o table,text

दोनों उपयोगिताओं में कई अतिरिक्त मोड और विशेषताएं हैं। मेरा सुझाव है कि इन सबसे बाहर निकलने के लिए पूरी तरह से मैनुअल पढ़ना।

यदि आपको थर्ड-पार्टी टूल्स का उपयोग करने से बचने की आवश्यकता है, तो यहां अंतर्निहित कमांड के साथ कुछ ऐसा ही करने का एक तरीका है। आप इन अंतःक्रियात्मक रूप से चला सकते हैं, लेकिन इसे स्क्रिप्ट के रूप में सहेजना संभव है। NB इसे छोटा रखने के लिए, यह स्क्रिप्ट कोई त्रुटि जाँच नहीं करता है, और केवल / 24 सबनेट पर काम करता है। अन्य आकारों के सबनेट पर काम करने के लिए इसे संशोधित करना पाठक के लिए एक अभ्यास के रूप में छोड़ दिया जाता है :)

#!/usr/bin/env bash
tab=$'\t'
pIF=$(echo "show State:/Network/Global/IPv4" | scutil | awk -F: '/PrimaryInterface/{sub(/ /,"",$2); print $2}')
sn=$(ipconfig getifaddr $pIF | sed -En 's/^([0-9]+\.[0-9]+\.[0-9]+).*/\1/p')
for i in {1..254}; do ping -i0.1 -W100 -c1 $sn.$i | grep from; done
arp -a | grep $pIF | sed -e 's/^\?/unnamed/' -e "s/\ at\ /${tab}/g" -e "s/\ on\ /${tab}/g" -e 's/\ ifscope.*$//g' | awk 'BEGIN { FS="\t"; OFS="\t"; printf "%-17s\t%-15s\t%s\n", "MAC","INTERFACE","HOSTNAME (IP)" } { if($2!="(incomplete)") {printf "%-17s\t%-15s\t%s\n",$2,$3,$1}}'

यह कुछ इस तरह उत्पादन करना चाहिए:

MAC                 INTERFACE       HOSTNAME (IP)
0:90:b:7a:85:62     en0             r1.lan (192.168.20.1)
2c:36:f8:48:2b:47   en0             cisco-sg300-10p.lan (192.168.20.2)
84:78:ac:a6:95:a0   en0             cisco-sg300-20.lan (192.168.20.3)
b4:fb:e4:cb:93:85   en0             wap1.lan (192.168.20.10)
0:11:32:10:cd:c1    en0             nas.lan (192.168.20.20)
0:11:32:3d:99:c9    en0             nas2.lan (192.168.20.21)
0:11:32:10:cd:c1    en0             unnamed (192.168.20.23)
d4:4b:5e:fe:6a:75   en0             brwd44b5efe6a75.lan (192.168.20.90)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.