Bir ağdaki tüm kullanılmış IP adresleri nasıl bulunur?

78

Çalışmamda bir sürü bilgisayar var ve şaka yapmak istiyorum. Bilgisayarı ağ üzerinden kapatabilirim ama IP adreslerini bulmak zor.

Tüm çevrimiçi IP adreslerini 192.168.1.aa - 192.168.1.zz'den nasıl kolayca bulabilirim?

    
sordu Eric Carvalho 02.12.2012 12:35

5 cevap

122

Genellikle, nmap , ağları hızlı bir şekilde taramak için oldukça kullanışlıdır.

nmap'i yüklemek için, terminalde aşağıdaki komutu girin:

sudo apt-get install nmap

Uygulama yüklendikten sonra, aşağıdaki komutu girin:

nmap -sn 192.168.1.0/24

Bu, 192.168.1.0 ve 192.168.1.255 arasındaki ağda ping isteklerine hangi ana bilgisayarların yanıt verdiğini size gösterecektir.

Nmap'in eski sürümleri için -sP kullanın:

nmap -sP 192.168.1.0/24

Ek referanslar için, aşağıdaki sayfalara bakın:

NMAP Kurulum Kılavuzu

NMAP Referans Kılavuzu

Öğrenmek için çok kullanışlı bir araçtır.

    
verilen cevap Kevin Bowen 02.12.2012 12:51
35

Ağınızdaki tüm bilgisayarlar Ubuntu veya avahi-daemon 'sini kullanan başka bir dağıtım ise ( DNS-SD ), yaparak aşağıdakilerin ayrıntılı bir listesini (ana bilgisayar adı ve IP adresi ile) alabilirsiniz:

avahi-browse -rt _workstation._tcp

Ağınızda kullanılan tüm IP adreslerini bilmek istiyorsanız, arp-scan kullanabilirsiniz:

sudo arp-scan 192.168.1.0/24

Varsayılan olarak yüklenmediğinden, sudo apt-get install arp-scan ile yüklemeniz gerekir. arp-scan ARP paketlerini yerel ağa gönderir ve alınan yanıtları görüntüler, bu yüzden güvenlik duvarı olmayan ana bilgisayarları bile (IP paketlerine göre trafiği engeller) gösterir.

    
verilen cevap Eric Carvalho 02.12.2012 16:07
14

Netdiscover sizin cevabınız olabilir.

Terminal yoluyla kurmak için:

sudo apt-get install netdiscover

örnek kullanımı:

sudo netdiscover -r 192.168.1.0/24 -i wlan0

Terminalinize MAC Addreses içeren bir IP gösterilecektir. Ekran resmine bakın

Size yardımcı olmayı umarım

referans

    
verilen cevap SP3B 03.08.2015 08:25
13

Okuyucuya not : Orijinal cevap bir süre önce ve yalnızca kabuk komut dosyası öğrenirken yayınlandı. Çok daha hızlı performans gösteren yeni ve geliştirilmiş bir komut dosyası için aşağıdaki revize edilmiş sürümüne bakın.

Orijinal Yanıt

nmap 1 numaralı seçeneğim olurdu, ancak ne yapmıyorsanız? DIY yolu, ağdaki olası her ip adresinden manuel olarak geçen bir ping komut dosyası ile olacaktır. Burada sahip olduğumuz şey sadece döngüde, adreste son numarayı belirlediğimizde, adrese sessiz tek ping yapmak, komutun başarılı olup olmadığını kontrol etmek (ve başarılı olursa, ana bilgisayar açıktır) ve printf Beyan. Hızlı ve kirli bir şekilde, bana yazmak için yaklaşık 10 dakika sürdü, ancak çalışma zamanı biraz yavaş olabilir.

#!/bin/sh
# set -x
NUM=1

while [ $NUM -lt 256  ];do 
    ping -q -c 1 192.168.0.$NUM > /dev/null 
    RESULT=$(echo $?)
    if [ $RESULT -eq 0 ]; then 
        printf 192.168.0.$NUM"\n"
    fi
    NUM=$(expr $NUM + 1)
done

Tekrar Sorulan Cevap

Bu cevabı aslında Ağustos 2015'te yayınladım. O zamandan beri kabuk komut dosyası hakkında biraz daha fazla şey öğrendim ve bir keresinde bu senaryoyu gördüğümde, bu cevabı tekrar gözden geçirmenin iyi bir fikir olacağını düşündüm. iyileştirmeler. İşte birkaç fikir:

  • Komut dosyası açık bir şekilde yavaştır ve ping , ana bilgisayardan yanıt bekler. Varsayılan olarak, iki RTT için ping , ağınız ne kadar sıkışık olduğuna bağlı olarak değişebilir ve TCP protokolünü anladığım kadarıyla her seferinde bekleme süresi iki katına çıkar (en azından Bu ). Bu nedenle, ping 'sini -w 1 bayrağıyla zaman aşımına uğratmak için zorlayabiliriz. 256 adrese sahip olduğumuzdan ve her adres için 1 saniye aldığımızdan, komut dosyası 256/60 = 4.27 dakika sürecektir.

  • Bir komutun yapılması ve çıkış durumunun $? ile yakalanması gerçekten gerekli değildi. % Co_de% doğrudan komutlar üzerinde çalışabilir. Diğer bir deyişle, bunu yapmak için yeterlidir:

    if ping -w 1 -q -c 1 192.168.0.$NUM > /dev/null ;
    then
         <some other code here>
    fi
    
  • if ... then;...fi komutu şu şekilde yeniden yazılabilir:

    printf "IP %s is up\n" 192.168.0."$NUM"
    

    Bu daha stilistik bir değişikliktir, ancak printf 'nin nasıl çalıştığıyla ve printf değişkeninden alıntı yaparak diğer birçok dilde nasıl göründüğü ile tutarlıdır. Burada alıntı yapmak gerekli değildir - sadece rakamlarla uğraştığımız için, değişkende boşluklara sahip olmasından dolayı kelime bölme işlemini tahmin etmemize gerek yoktur.

  • Çok sayıda arka plan işlemi gerçekleştirirsek çok daha iyi performans artışı sağlanabilir. Aşağıdaki komut dosyası tam olarak bunu yapar. % Co_de% ve "$NUM" değerini bir işleve koydum ping (evet, corny name, biliyorum). Şimdi, printf 'sinin döngü ve çağrılmasını yapan tek bir pingf işlevi de var.

#!/bin/sh
# Uncomment for debugging
#set -x
pingf(){
    if ping -w 2 -q -c 1 192.168.0."" > /dev/null ;
    then 
        printf "IP %s is up\n" 192.168.0.""
    fi
}

main(){

    NUM=1
    while [ $NUM -lt 255  ];do 
        pingf "$NUM" &
        NUM=$(expr "$NUM" + 1)
    done
    wait
}

main

Ne kadar iyi çalışır? Fena değil, aslında, saniyeler alır.

$ time ./ping_script.sh                                                                      
IP 192.168.0.1 is up
IP 192.168.0.101 is up
IP 192.168.0.27 is up
IP 192.168.0.29 is up
    0m02.50s real     0m00.01s user     0m00.12s system

Akılda Tutulması Gereken Şeyler

  • Windows (Windows 7'den bu yana başlayarak), ICMP echo isteklerine yanıtı engellemeye başladı. Ask Ubuntu ve diğer sitelerde "Hey, Linux bilgisayarım pinglenebiliyor, ama Windows olanlar değil, bununla ilgili ne var?" Sorusuyla ilgili birkaç soru var. Sadece daha yeni Windows sürümleri için ICMP echo'ya yanıtı etkinleştirmeniz gerektiğinin farkında olun.
verilen cevap Sergiy Kolodyazhnyy 03.08.2015 09:43
4

fping , ICMP üzerinden bir ağ üzerinde birden fazla ana bilgisayarı taramak için harika bir araçtır. Yüklenmezse, şunları yükleyebilirsiniz:

sudo apt-get install fping

fping , ICMP ECHO_REQUEST paketlerini gönderir ve ana bilgisayardan ECHO_RESPONSE alırsa bir ana bilgisayar olarak işaretler.

Örneğin, 192.168.1.0/24 alt ağının ana bilgisayarlarını taramak için şunları yapabilirsiniz:

fping -g 192.168.1.0/24

Belirli sayıda sunucu için örn. 192.168.1.15 ile 192.168.1.140 arasında:

fping -g 192.168.1.15 192.168.1.140

fping yüksek düzeyde yapılandırılabilir örn. Kaç tane paket gönderilecek, cevap beklemek için zaman, çıktı biçimi vb.

Daha fazla fikir edinmek için man fping 'yı kontrol edin.

    
verilen cevap heemayl 21.02.2016 03:21

Etiketlerdeki diğer soruları oku