लिनक्स में एक लैन पर कंप्यूटर की प्रदर्शन सूची


62

मैं एक वेब देव हूं, जो सुरक्षा पर बेहतर नियंत्रण पाने की कोशिश कर रहा है। मैं एक तरह से यह पता लगाने की कोशिश कर रहा हूं (लिनक्स / डेबियन आधारित डिस्ट्रोस पर) एक ही लैन पर सभी कंप्यूटरों को सूचीबद्ध करने के लिए मेरी नेटबुक चालू है। मैंने "arp -n" की कोशिश की, लेकिन मुझे नहीं लगता कि यह पूरी सूची है, क्योंकि मेरा iPhone मेरी नेटबुक के समान वाई-फाई राउटर पर है, और यह बात सामने नहीं आई। क्या मशीनों की पूरी सूची प्राप्त करने के लिए कुछ बेहतर तरीके हैं जो सभी एक ही गेटवे साझा कर रहे हैं?


जवाबों:


58

जाओ nmap । यह कार्यक्रम मैट्रिक्स में प्रयुक्त ट्रिनिटी है और आप उन सभी डिवाइसों को खोजने के लिए एक स्कैन कर सकते हैं जो आपके द्वारा और अधिक से लैन से जुड़े हैं।

यहाँ संदर्भ गाइड है।


16
ठीक। "Sudo nmap -sL 123.123.123। * जैसा दिखता है।" धन्यवाद!
CaptSaltyJack

2
के साथ sudo apt-get install nmap
नैम्प

1
मुझे लगा कि यह वास्तव में एक गंभीर वेबसाइट है, lol +1
user10089632

38

यह वह है जो मैं उपयोग करता हूं, nmap, और उस पते का उपयोग करता हूं जो उस नेटवर्क के CIDR ब्लॉक नोटेशन का उपयोग करता है जिसे आप स्कैन करना चाहते हैं। पहले आपको नैम्प स्थापित करने की आवश्यकता है क्योंकि यह आपके पास डिस्ट्रो के साथ पूर्व-स्थापित नहीं आ सकता है। उबंटू पर:

sudo apt-get install nmap

Ifconfig का उपयोग करके अपने नेटवर्क पते का पता लगाएँ:

ifconfig

ifconfig आउटपुट मैं स्कैन करना चाहता हूं:

wlan1     Link encap:Ethernet  HWaddr 00:1f:3b:03:d2:bf  
          inet addr:192.168.1.104  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21f:3bff:fe03:d2bf/64 Scope:Link
          ...

CIDR संकेतन में नेटवर्क पते का पता लगाने के लिए inet addr और Mask का उपयोग करें, यहाँ CIDR पर अधिक । पता इस प्रकार है:

192.168.1.0/24

Nsp -sP पैरामीटर का उपयोग करके रन करें, जो होस्ट के ऑनलाइन होने पर चेक करने से आगे नहीं बढ़ेगा:

sudo nmap -sP 192.168.1.0/24

नैंप आउटपुट कुछ इस तरह दिखाई देगा:

Starting Nmap 5.21 ( http://nmap.org ) at 2014-12-09 10:52 EST
Nmap scan report for 192.168.1.1
Host is up (0.013s latency).
MAC Address: -MAC ADDRESS- (Cameo Communications)
...
Nmap done: 256 IP addresses (5 hosts up) scanned in 3.26 seconds

यदि आपको nmap के साथ अधिक सहायता की आवश्यकता है, तो यह देखें , nmap आधिकारिक दस्तावेज़ देखें , या चलाएँ:

nmap --help 

2
nmap -sA 192.168.1.0/24 nmap विकल्प -sAबेहतर पठनीयता के साथ इसी तरह के वर्णनात्मक परिणाम दिखाता है, जिसमें विकल्प के साथ डिवाइस का नाम, IP, mac, आदि शामिल हैं -sP। मैं व्यक्तिगत रूप से पठनीयता के लिए -sA को -sP पसंद करता हूं।
Jayzcode

@Jayzcode मेरी मशीन पर -sA कभी नहीं लौट रहा है, जबकि -sP ने केवल 3.73 सेकंड का समय लिया (राउटर, माय पीसी और एक अन्य पीसी का पता लगाया)। कोई विचार क्यों?
रॉड्रिगो

17

arp -nकेवल आपको दिखाता है कि आपके मशीन ने आपके LAN पर मशीनों से बात की है। आप उस सूची को प्रसारण और सभी-होस्ट मल्टीकास्ट पतों को पिंग करके बेहतर तरीके से प्राप्त कर सकते हैं:

"सभी लोग" (बाइनरी में) प्रसारण पता। ध्यान दें कि अधिकांश आईपी स्टैक आपके द्वारा अटैच किए गए सभी सबनेट के सबनेट प्रसारण पते पर इसका अनुवाद करेंगे:

ping 255.255.255.255

आपके वर्तमान सबनेट के लिए सबनेट प्रसारण पता। तो यह मानकर कि आप 192.168.1.0/24 पर हैं:

ping 192.168.1.255

"सभी होस्ट" मल्टीकास्ट पता। मुझे यह बहुत पसंद है क्योंकि यह अन्य आईपी सबनेट के लिए होस्ट किए गए होस्ट को खोजने की अधिक संभावना है, जो आपके साथ उसी ईथरनेट लैन से जुड़ा होना चाहिए:

ping 224.0.0.1

ध्यान दें कि यह विधि, और अन्य तरीकों को मैंने अब तक अन्य उत्तरों में उल्लेख किया है, केवल वर्तमान नेटवर्क पर आईपी-पहुंच योग्य मेजबानों की तलाश करें। शायद यह सब आपको ध्यान रखने की आवश्यकता है, लेकिन किसी हमलावर के लिए आईपी के माध्यम से दिखाई दिए बिना नेटवर्क को खराब करना, या खराब चीजें करना संभव है।


8

ip neighऔर hostsकोई nmap आवश्यक / कोई sudo की आवश्यकता है

इस पर निर्माण, आप एक पायथन स्क्रिप्ट का निर्माण कर सकते हैं:

#!/usr/bin/env python

"""List all hosts with their IP adress of the current network."""

import os

out = os.popen('ip neigh').read().splitlines()
for i, line in enumerate(out, start=1):
    ip = line.split(' ')[0]
    h = os.popen('host {}'.format(ip)).read()
    hostname = h.split(' ')[-1]
    print("{:>3}: {} ({})".format(i, hostname.strip(), ip))

के माध्यम से डाउनलोड करें

wget https://gist.githubusercontent.com/MartinThoma/699ae445b8a08b5afd16f7d6f5e5d0f8/raw/577fc32b57a7f9e66fdc9be60e7e498bbec7951a/neighbors.py

(या बस arp... मैंने पहले ऐसा नहीं देखा था)


या बसip neigh | awk '{ print $1 }' | xargs -n1 host
ब्लॉकचोप

ip nछोटे के लिए। शायद बेहतर ip n | grep REACHABLE
पाब्लो ए

4

मुझे मौजूदा उत्तर पर्याप्त नहीं मिले, इसलिए मैंने सोचा कि मैं कोशिश करूँगा। आखिरकार, एफएक्यू लिंक के लिए संदर्भ प्रदान करने का सुझाव देता है ।

nmapमहान है, अगर उपयोग करने के लिए थोड़ा भ्रमित। यहाँ कुछ ऐसा है जिसे मैं स्थानीय नेटवर्क उपकरणों की खोज के लिए चलाता हूँ जो ज्यादातर कॉपी-पेस्ट-सक्षम हैं। nmap -sP(या nmap -sn) पिंग करके स्कैन करता है । वहाँ के साथ की तरह 'होस्ट खोज' के लिए अन्य विकल्प हैं, nmap -sLया nmap -Pn

रास्ता # 1।

ehtesh@x200arch:~$ # my wireless interface is listed as wlp3s0. Yours could be wlan0 or eth1.
ehtesh@x200arch:~$ ip addr show wlp3s0 | grep "inet "
    inet 172.18.72.53/22 brd 172.18.75.255 scope global wlp3s0
ehtesh@x200arch:~$ arp -a
? (172.18.72.1) at c8:4c:75:76:bd:74 [ether] on wlp3s0
ehtesh@x200arch:~$ nmap -sP 172.18.72.0/24
Starting Nmap 6.41SVN ( http://nmap.org ) at 2013-12-17 20:08 EST
Nmap scan report for 172.18.72.2
Host is up (0.017s latency).
<... 15 IP addresses snipped ...>
Nmap scan report for 172.18.72.253
Host is up (0.13s latency).
Nmap done: 256 IP addresses (17 hosts up) scanned in 5.74 seconds
ehtesh@x200arch:~$ arp -a | sort -n -k 1,1                            
? (172.18.72.126) at ec:35:86:4a:37:d2 [ether] on wlp3s0
? (172.18.72.148) at 10:9a:dd:b8:79:71 [ether] on wlp3s0
? (172.18.72.178) at 9c:20:7b:7b:08:ba [ether] on wlp3s0
? (172.18.72.1) at c8:4c:75:76:bd:74 [ether] on wlp3s0
? (172.18.72.253) at b8:78:2e:19:05:0b [ether] on wlp3s0
? (172.18.72.2) at 00:14:1c:da:e1:c2 [ether] on wlp3s0
? (172.18.72.40) at d8:c7:c8:ca:f9:88 [ether] on wlp3s0
? (172.18.72.43) at d8:c7:c8:ce:0f:60 [ether] on wlp3s0
? (172.18.72.44) at d8:c7:c8:ce:0f:68 [ether] on wlp3s0
? (172.18.72.45) at 6c:f3:7f:c6:71:16 [ether] on wlp3s0
? (172.18.72.46) at 6c:f3:7f:c4:4c:b3 [ether] on wlp3s0
? (172.18.72.47) at d8:c7:c8:ca:f9:88 [ether] on wlp3s0
? (172.18.72.48) at 24:de:c6:c6:b6:78 [ether] on wlp3s0
? (172.18.72.49) at 24:de:c6:c6:b6:e6 [ether] on wlp3s0
? (172.18.72.51) at 00:9c:02:d0:4c:4e [ether] on wlp3s0
? (172.18.72.54) at 00:23:76:99:99:bf [ether] on wlp3s0
? (172.18.72.62) at 8c:70:5a:0d:06:18 [ether] on wlp3s0
? (172.18.72.63) at 7c:e9:d3:51:86:55 [ether] on wlp3s0
? (172.18.72.64) at a0:88:b4:47:eb:c8 [ether] on wlp3s0

रास्ता # 2। मुझे पता है कि यह काम करता है, लेकिन मैं नहीं कह सकता कि यह जाने का सही तरीका है।

ehtesh@x200arch:~$ #ifconfig | grep broadcast
ehtesh@x200arch:~$ ip address show wlp3s0 | grep brd
    link/ether 00:1e:65:bf:1b:42 brd ff:ff:ff:ff:ff:ff
    inet 172.18.72.53/22 brd 172.18.75.255 scope global wlp3s0
ehtesh@x200arch:~$ ping -b -c 3 -i 20 172.18.75.255
<... similar output to above ...>

मुझे यह जानकर खुशी होगी कि और अधिक प्रभावी तरीके हैं। तब तक, मैं इस से चिपका रहा हूँ।


4

आप उदाहरण के लिए एक छोटे से लिनक्स शेल स्क्रिप्ट के साथ सभी दिए गए सबनेट को पिंग करने की कोशिश कर सकते हैं

$ for ip in $(seq 1 254); do ping -c 1 192.168.1.$ip>/dev/null; [ $? -eq 0 ] && echo "192.168.1.$ip UP" || : ; done

मेरे मामले में सभी के लिए यूपी कहा और फिर ip nसभी को फेल कहा।
पाब्लो ए

3

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


4
मुझे पता है कि मैन पेज हैं, लेकिन उत्तर में एक उदाहरण देखना उपयोगी होगा।
एहतेश चौधरी

2

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

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केवल एक ही दिखाएगा, जो कि पिछले राउटर से जुड़ा था


2

IP पते की एक श्रृंखला की स्थिति को स्कैन करने के लिए, यह अच्छा और सरल है:

sudo nmap -sn 192.168.1.2-20

कहाँ पे:

         -sn: Ping Scan - disable port scan

ध्यान दें:

  • Nmap की पिछली रिलीज़ में, -snके रूप में जाना जाता था-sP

मैंने यह मैक ओएस एक्स (जो बीएसडी पर आधारित है) पर किया था। मुझे यकीन नहीं है कि लिनक्स संस्करण में कोई अंतर है या नहीं।


1
शानदार, मुझे बस इतना ही टाइप करना था: sudo nmap -sP 192.168.178.0-255। इसने सबनेट में एक स्कैन किया जो मैं अंदर हूं।
लियो

2

आप फ़िपिंग का उपयोग कर सकते हैं sudo apt-get install fping(डेबियन जैसे OS में)।

fping पिंग के समान है, लेकिन कई मेजबानों को पिंग करते समय बेहतर प्रदर्शन करना। -R 1 झंडा केवल एक दौर प्रदर्शन करने के लिए fping बताता है। 2> 1 हिस्सा उत्पादन फिल्टर करने के लिए ग्रेप अनुमति देता है।

$ fping -g -r 1 192.168.1.0/24 2>1 | grep "alive"

कुछ इस तरह प्रदर्शित करेगा:

192.168.1.1 is alive
192.168.1.10 is alive
192.168.1.15 is alive
192.168.1.27 is alive

नैंप के लिए एक दिलचस्प झंडा भी है जो आपको मैक विक्रेता को देखने देगा - यदि ज्ञात हो। मैक पते देखने के लिए सुडो के साथ प्रयोग करें ।

$ sudo nmap -sP 192.168.1.0/24

आपको उदाहरण के लिए मिलेगा:

Starting Nmap 7.40 ( https://nmap.org ) at 2019-05-23 18:49 CEST
Nmap scan report for 192.168.1.14
Host is up (-0.036s latency).
MAC Address: 20:F4:1B:E5:8F:7B (Shenzhen Bilian electronic)
Nmap scan report for 192.168.1.15
Host is up (-0.084s latency).
MAC Address: A4:31:35:E8:58:9E (Apple)
Nmap scan report for 192.168.1.27
Host is up (-0.15s latency).
MAC Address: 34:8A:7B:38:E3:14 (Samsung Electronics)
Nmap scan report for 192.168.1.29
Host is up (0.010s latency).
MAC Address: 80:2B:F9:75:F8:FF (Unknown)
Nmap scan report for 192.168.1.10
Host is up.
Nmap done: 256 IP addresses (5 hosts up) scanned in 25.52 seconds

1

1. वैकल्पिक समाधान अगर प्रसारण और nmapउपलब्ध नहीं हैं:

seq 254 | xargs -iIP -P255 ping -c1 192.168.2.IP |grep time=
arp -a

2 ए। या बस अपने डोमेन नाम सर्वर से पूछें :

seq 254| awk '{print "192.168.2."$1}' |nslookup | grep name

2 बी। बिना जाग के

echo -e 192.168.2.{1..10}"\n" |nslookup |grep name
  1. 192.168.2.0/24 सबनेट में सभी पिंगेबल नेटवर्क-डिवाइसेस को समानांतर में (रन टाइम को कम करने के लिए) पिंग करता है । बाद में arpप्रत्येक डिवाइस को प्रदर्शित करना चाहिए, जिसने उत्तर दिया।

  2. सक्रिय या वर्तमान कनेक्शन की जांच नहीं करता है, लेकिन सभी कनेक्शनों को सूचीबद्ध करता है स्थानीय डोमेन सेवा एक प्रविष्टि रखती है, यहां तक ​​कि वास्तव में पुराने भी।

अधिक विस्तृत विवरण:

  • seq 2541 से 254 तक सभी नंबर बनाने के लिए (100 से 150 तक की सभी संख्याओं के लिए seq 100 150)
  • xargsकॉल pingऔर "आईपी" ( -iIP) को seqस्टड से uence नंबर के साथ बदल देता है , इसलिए 192.168.2.IP पहले seqनंबर के लिए 192.168.2.1 में बदल जाता है , -Pसमवर्ती pingप्रक्रियाओं की संख्या निर्दिष्ट xargsकरना शुरू कर देना चाहिए, मैं उसी पते पर +1 चुनता हूं। = 254) im रूचि।
  • pingxargs ( 192.168.2.IP) और केवल एक बार पिंग ( ) द्वारा संशोधित आईपी-पते के साथ -c1; आपको -iइस मामले में तर्क पर xargs के लिए निर्दिष्ट समान पहचानकर्ता का उपयोग करना चाहिएIP
  • grep time= प्रत्येक जानकारी को निकालने के लिए, जिसमें हम केवल उत्तरों में रुचि रखते हैं, जो एक गोल-यात्रा समय प्रदान करते हैं (= प्रतिक्रिया मिली)
  • arp -a मान्य नाम (आईपी) जोड़े प्रदर्शित करने के लिए

मैं इसे अपना पिंगल कमांड कहता हूं और इसे एक उपनाम में उपलब्ध कराया है ~/.bashrc:

alias pingall='seq 254 | xargs -iIP -P255 ping -c1 192.168.2.IP |grep time='
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.