Linux'ta LAN üzerindeki bilgisayarların listesini görüntüleme


62

Ben güvenliği daha iyi ele almaya çalışan bir web dev. Netbook'umun açık olduğu aynı LAN üzerindeki tüm bilgisayarları listelemek için bir yol bulmaya çalışıyorum (Linux / Debian tabanlı dağıtımlarda). "ARP-n" denedim ama tam bir liste olduğunu sanmıyorum, çünkü iPhone'um netbook'umla aynı kablosuz yönlendiricideydi ve bu gelmedi. Aynı ağ geçidini paylaşan makinelerin tam listesini elde etmenin daha iyi bir yolu var mı?


Yanıtlar:


58

Get nmap . The Matrix'te kullanılan Trinity programıdır ve bulunduğunuz LAN'a bağlı tüm cihazları bulmak için bir tarama yapabilirsiniz.

İşte başvuru kılavuzu.


16
TAMAM. Görünüşe göre "sudo nmap -sL 123.123.123. *" Aradığım şey, veya belki -sL yerine -sP. Teşekkürler!
CaptSaltyJack

2
sudo apt-get install nmap
nmap'ı

1
Bu aslında ciddi bir web sitesi olduğunu düşündüm, lol +1
user10089632

38

Kullandığım şey bu, nmap ve taramak istediğiniz ağın CIDR bloğu notasyonunu kullanan bir adres. Öncelikle nmap'ı yüklemeniz gerekir, çünkü dağıtılmış olarak önceden yüklenmiş olarak gelmeyebilir. Ubuntu'da:

sudo apt-get install nmap

Ardından ifconfig kullanarak ağ adresinizi bulun:

ifconfig

arayüz için ifconfig çıktı taramak istiyorum:

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 notasyonunda ağ adresini, burada CIDR hakkında daha fazlasını bulmak için inet addr ve Mask kullanın . Adres:

192.168.1.0/24

Ana bilgisayarın çevrimiçi olup olmadığını kontrol etmekten başka bir tarama yapmadan -sP parametresini kullanarak nmap'i çalıştırın:

sudo nmap -sP 192.168.1.0/24

nmap çıktısı şuna benzer:

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 ile ilgili daha fazla yardıma ihtiyacınız olursa , nmap'ın resmi belgelerine bakın veya çalıştırın:

nmap --help 

2
nmap -sA 192.168.1.0/24 nmap seçeneği -sA, seçenekle olduğu gibi aygıt adını, IP, mac vb. içeren daha iyi okunabilirliği olan benzer tanımlayıcı sonuçları gösterir -sP.
Jayzcode

@Jayzcode Makinemde -sA asla dönmüyor, -sP ise sadece 3.73 saniye sürdü (yönlendirici, bilgisayarım ve başka bir bilgisayar algılandı). Neden bir fikrin var mı?
Rodrigo

17

arp -nLAN’ınızda makinenizin daha önce konuştuğu makineleri gösterir. Yayını ve tüm ana bilgisayarların çok noktaya yayın adreslerini pingleyerek bu listeyi daha iyi doldurmak için alabilirsiniz:

"Hepsi" (ikili olarak) yayın adresi. Çoğu IP yığınının bunu bağlı olduğunuz tüm alt ağlar için alt ağ yayın adreslerine çevireceğini unutmayın:

ping 255.255.255.255

Geçerli alt ağınız için alt ağ yayın adresi. 192.168.1.0/24 tarihinde olduğunuzu varsayalım:

ping 192.168.1.255

"Tüm ana bilgisayarlar" çok noktaya yayın adresi. Bunu çok beğendim, çünkü diğer IP alt ağları için yapılandırılmış ana bilgisayarı bulma olasılığı daha yüksek, bu da sizin gibi aynı Ethernet LAN'ına bağlı:

ping 224.0.0.1

Bu yöntemin ve şu ana kadarki diğer Yanıtlarda bahsettiğim diğer yöntemlerin, yalnızca geçerli ağdaki IP tarafından erişilebilen ana bilgisayarları aradığını unutmayın. Tek yapmanız gereken tek şey budur, ancak bir saldırganın IP üzerinden görünmeden bir ağa göz atması veya kötü şeyler yapması mümkündür.


8

ip neighve hosts. NO nmap gerekli / NO sudo gerekli .

Buna dayanarak, bir Python betiği oluşturabilirsiniz:

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

Üzerinden indir

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

(ya da basitçe arp... bunu daha önce görmedim)


ya da sadeceip neigh | awk '{ print $1 }' | xargs -n1 host
blockloop

ip nkısaca. Belki daha iyi ip n | grep REACHABLE.
Pablo A

4

Mevcut cevapları yeterince tatmin edici bulmadım, bu yüzden denerim diye düşündüm. Sonuçta, SSS bağlantılar için içerik sağlamayı önerir .

nmapbiraz kullanmak kafa karıştırıcı eğer, harika. İşte çoğunlukla kopyala-yapıştır özelliğine sahip yerel ağ cihazlarını keşfetmek için kullandığım bir şey. nmap -sP(veya nmap -sn) ping yaparak tarar . nmap -sLVeya ile olduğu gibi 'ana bilgisayar keşfi' için başka seçenekler de vardır nmap -Pn.

Yol # 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

Yol # 2. Bunun işe yaradığını biliyorum, ama bunun doğru yol olup olmadığını söyleyemem.

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 ...>

Daha etkili yollar olup olmadığını bilmek mutlu olurum. O zamana kadar buna bağlı kalıyorum.


4

Belirli bir alt ağı küçük bir linux kabuk betiğiyle pinglemeye çalışabilirsiniz.

$ 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

Benim durumumda Herkese YUKARI dedi ve sonra ip nHerkese HAYIR dedi .
Pablo A

3

Hunt , bilgi için ağ üzerinden yayın yaptıkları bir makine listesi oluşturabilen bir komut satırı aracıdır. Bir ağdaki aktif MAC adreslerinin bir listesini oluşturmak için TCP, UDP, ICMP ve ARP verilerini kullanır. Tel dinleyerek çalışan pasif bir araçtır.


4
Erkek sayfaları olduğunu biliyorum ama cevapta bir örnek görmek faydalı olacaktır.
Ehtesh Choudhury

2

Bağlı cihazların daha kompakt bir listesi için:

nmap -sL 192.168.0.* | grep \(1

Açıklama.

nmap -sL 192.168.0.* Tüm IP'leri alt ağda listeleyecek ve isimleri olanları işaretleyecektir:

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

Tüm ilginç kayıtlar parantez başladıkça (ve rakam 1ile, bunun için de filtre | grep \(1(ters eğik çizgi parantez kaçmak için tabi)

Tuhaf
Dikkat Eğer iki cihaz aynı ada sahipse, en sonnmap yönlendiriciye bağlı olandan birini gösterecektir.


2

Bir dizi IP adresinin durumunu taramak için bu hoş ve basittir:

sudo nmap -sn 192.168.1.2-20

Nerede:

         -sn: Ping Scan - disable port scan

Not:

  • Nmap'ın önceki sürümlerinde, -snolarak-sP

Bunu Mac OS X'te (BSD'ye dayanan) yaptım. Linux sürümünün farklı olup olmadığından emin değilim.


1
Parlak, tüm yapmam gereken türü: sudo nmap -sP 192.168.178.0-255. Bu, içinde bulunduğum alt ağda bir tarama yaptı.
Leo Gerber,

2

Fping'i kullanabilirsiniz sudo apt-get install fping(debian benzeri işletim sistemlerinde).

fping , ping'e benzer, ancak birden fazla ana bilgisayara ping yaparken çok daha iyi performans gösterir. -R 1 bayrak tek aşama gerçekleştirmek için Fping söyler. 2> 1 kısım grep çıkış filtre sağlar.

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

Gibi bir şey görüntüler misiniz:

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

Bir de bulunmaktadır nmap'e için ilginç bayrak eğer biliniyorsa - MAC satıcı görelim olacaktır. MAC adreslerini görmek için sudo ile kullanın .

$ sudo nmap -sP 192.168.1.0/24

Örneğin alırsınız:

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. Yayınlar ve nmapmevcut değilse alternatif çözüm :

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

2a. veya sadece alan adı sunucunuza sorun :

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

2b. awk olmadan

echo -e 192.168.2.{1..10}"\n" |nslookup |grep name
  1. 192.168.2.0/24 alt ağındaki tüm pingable Network-Devices'ı paralel olarak çalıştırır (çalışma süresini azaltmak için). Daha sonra arpcevaplanan her cihazı göstermelidir.

  2. etkin veya güncel bağlantıları kontrol etmez, ancak yerel etki alanı servisinin bir girişe sahip olduğu, hatta eskilerine ait tüm bağlantıları listeler.

Daha detaylı Açıklama:

  • seq 2541 - 254 arası tüm sayıları oluşturmak için (100 - 150 arası tüm sayılar için seq 100 150)
  • xargsaramalar pingve "IP" ( -iIP) seqişlevini stdin'den gelen sayı ile değiştirir, bu nedenle 192.168.2.IP ilk seqsayı için 192.168.2.1 olarak değişir -P, eşzamanlı pingişlemlerin xargsbaşlaması gerektiğini belirtir, adreslerle aynı miktarda +1 seçerim ( = 254) ilgileniyorum.
  • pingxargs ( 192.168.2.IP) tarafından değiştirilen ve sadece bir kez ping ( ) yapan ip adresiyle -c1; -iBu durumda xargs için belirtilen tanımlayıcıyı bu durumda kullanmalısınız.IP
  • grep time= gereksiz bilgileri içeren her satırı kaldırmak için, yalnızca bir gidiş-dönüş süresi sağlayan yanıtlarla ilgileniriz (= bir yanıt aldı)
  • arp -a geçerli ad (ip) çiftlerini görüntülemek için

Bunu pingall komutum olarak adlandırıyorum ve içindeki bir takma ad üzerinden kullanılabilir duruma getirdim~/.bashrc :

alias pingall='seq 254 | xargs -iIP -P255 ping -c1 192.168.2.IP |grep time='
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.