Vraag Hoe alle gebruikte IP-adressen in een netwerk te vinden


In mijn werk is er veel computer en ik wil een grap maken. Ik kan de computer via het netwerk afsluiten, maar het vinden van IP-adressen is moeilijk voor mij.

Hoe kan ik gemakkelijk alle online IP-adressen vinden van 192.168.1.aa tot 192.168.1.zz?


79
2017-12-02 11:35


oorsprong


proberen angry ip scanner - Web-E
mogelijk duplicaat van Hoe vind ik ongebruikt IP-adres op een netwerk? - Lekensteyn
ernstig? wil je onze hulp om je collega's te prikkelen? - Dan H


antwoorden:


Over het algemeen, nmap is best handig om snel netwerken te scannen.

Om nmap te installeren, voert u de volgende opdracht in de terminal in:

sudo apt-get install nmap

Nadat de applicatie is geïnstalleerd, voert u de volgende opdracht in:

nmap -sn 192.168.1.0/24

Hiermee wordt weergegeven welke hosts hebben gereageerd op pingaanvragen op het netwerk tussen 192.168.1.0 en 192.168.1.255.


Gebruik voor oudere versies van Nmap -sP:

nmap -sP 192.168.1.0/24

Zie de volgende pagina's voor meer informatie:

NMAP Installatiehandleiding

NMAP-gebruikershandleiding

Het is een zeer nuttig hulpmiddel om te leren.


122
2017-12-02 11:51



Niet alle hosts reageren op pings. ARP is de manier om te gaan, althans in IPv4. - Marcin Kaminski
dat is genoeg voor mij en het werkt op internet
is het gewoon mijn computer, of duurt deze opdracht voor altijd om te draaien? - JohnMerlino
Opmerking: om nmap-scan te versnellen, moet u -T4 (snelheid) en -n (alleen numerieke) vlaggen toevoegen. - Sergiy Kolodyazhnyy
Vergeet niet dat je nodig hebt sudo voor nmap-opdracht, anders worden nulresultaten geretourneerd. - machineaddict


Als alle computers in uw netwerk Ubuntu zijn of een andere distributie die gebruikmaakt van avahi-daemon (DNS-SD), kunt u een gedetailleerde lijst van deze (met hostnaam en IP-adres) krijgen door te doen:

avahi-browse -rt _workstation._tcp

Als u alle IP-adressen wilt weten die in uw netwerk worden gebruikt, kunt u dit gebruiken arp-scan:

sudo arp-scan 192.168.1.0/24

Omdat het niet standaard is geïnstalleerd, moet u het installeren met sudo apt-get install arp-scan. arp-scan stuur ARP-pakketten naar het lokale netwerk en geeft de ontvangen antwoorden weer, zodat het zelfs firewall-hosts (die verkeer blokkeren op basis van IP-pakketten) wordt weergegeven.


35
2017-12-02 15:07



Deze opdracht is zeker beter dan die hierboven. Het uitvoeren van nmap duurde eeuwen, maar deze antwoordde direct met de knooppunten in het opgegeven netwerk. - JohnMerlino
In mijn geval, heel vaak, arp-scan vindt niet alle apparaten gekoppeld aan mijn draadloze netwerk. Nu, bijvoorbeeld sudo arp-scan 192.168.2.0/24 toont 2 resultaten (.1 en .1), terwijl nmap -sn 192.168.2.0/24 toont 4 resultaten (.1, .2, .3 en .4). Dus het lijkt erop dat nmap is nauwkeuriger (ik weet zeker dat er vier apparaten op het netwerk zijn aangesloten). Waarom is dit? - tigerjack89
Misschien vond ik het antwoord in een opmerking bij een andere vraag. "Opgemerkt moet worden dat sommige apparaten mogelijk niet worden weergegeven, tenzij ze zijn ingeschakeld. Mijn nexus 4 wordt niet weergegeven tenzij het scherm is ingeschakeld." Het is echter interessant dat dezelfde apparaten altijd reageren op pings van nmap. - tigerjack89
arp-scanis leuk ! - forzagreen


Netdiscover kan uw antwoord zijn.

Installeren via terminal:

sudo apt-get install netdiscover

voorbeeld gebruik:

sudo netdiscover -r 192.168.1.0/24 -i wlan0

Een IP met MAC-adressen verschijnt op uw terminal. Bekijk de screenshot

enter image description here

hoop je helpen

referentie


14
2017-08-03 06:25



Lijkt heel erg, eerst proberen en *** buffer overflow detected ***: netdiscover terminated. - Pablo Bianchi


Opmerking voor de lezer: Origineel antwoord is al een tijdje geleden gepubliceerd en toen ik nog maar shell scripting aan het leren was. Zie de herziene versie hieronder voor een nieuw en verbeterd script dat veel sneller presteert.

Origineel antwoord

nmap zou mijn # 1 keuze zijn, maar wat als je het niet hebt? De DIY-manier zou zijn met een ping-script dat handmatig elk mogelijk IP-adres in het netwerk doorloopt. Wat we hier hebben is slechts een while-lus, waarbij we het laatste nummer in het adres instellen, een stille ping naar het adres maken, controleren of de opdracht slaagt of niet (en als het lukt, dan is de host duidelijk up), en printf uitspraak. Snelle en vuile manier, kostte me ongeveer 10 minuten om het te schrijven, maar runtime misschien een beetje traag.

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

Revisited Answer

Oorspronkelijk postte ik dit antwoord in augustus 2015. Sindsdien heb ik iets meer geleerd over shell-scripting en toen ik dit script eenmaal zag, dacht ik dat het een goed idee zou zijn om dit antwoord opnieuw te bekijken om een ​​paar verbeteringen toe te voegen. Hier zijn een paar ideeën:

  • Het script is duidelijk traag en ping wacht op antwoord van de gastheer. Standaard, ping voor twee RTT, die kan variëren afhankelijk van hoe vol uw netwerk is, en voor zover ik begrijp, verdubbelt het TCP-protocol de wachttijd elke keer (althans volgens deze). Zodat we kunnen forceren ping om mee te doen met -w 1 vlag. Omdat we 256 adressen hebben en we aannemen 1 seconde voor elk adres, duurt het script ongeveer 256/60 = 4,27 minuten.

  • Een commando uitvoeren en vervolgens de exit-status vastleggen met $? was niet echt nodig. De if ... then;...fi kan direct op commando's werken. Met andere woorden, het is voldoende om dit te doen:

    if ping -w 1 -q -c 1 192.168.0.$NUM > /dev/null ;
    then
         <some other code here>
    fi
    
  • De printf commando kan als volgt worden herschreven:

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

    Dit is meer een stilistische verandering, maar het is consistent met hoe printf werkt en ziet eruit als in veel andere talen, met aanhalingstekens "$NUM" variabel. Citeren is hier niet nodig - omdat we alleen getallen hebben, hoeven we niet te anticiperen op woordsplitsing omdat er spaties in een variabele zitten.

  • Veel betere prestatieverbetering kan worden bereikt als we verschillende achtergrondprocessen gebruiken. De scriptbewerking hieronder doet precies dat. Ik zet de ping en printf in een functie, pingf (ja, afgezaagde naam, ik weet het). Nu is er ook nog een single main functie die het lussen en oproepen van doet pingf.

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

main(){

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

main

Hoeveel beter werkt dat? Niet slecht duurt in feite een kwestie van seconden.

$ 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

Dingen om in gedachten te houden

  • Windows (beginnend sinds Windows 7, denk ik) is begonnen met het blokkeren van de respons op ICMP-echoverzoeken. Er zijn nogal wat vragen daarover bij Ask Ubuntu en andere sites van het type "Hé, mijn Linux-computer kan worden gepingd, maar geen Windows-versie, wat is daar aan de hand?" Houd er rekening mee dat u voor nieuwere Windows-versies een reactie op ICMP-echo moet inschakelen.

14
2017-08-03 07:43



Ik hou van dit soort oplossingen - Szenis


fping is een geweldig hulpmiddel om meerdere hosts in een netwerk via ICMP te scannen. Als het niet is geïnstalleerd, kunt u het installeren door:

sudo apt-get install fping

fping verstuurt ICMP ECHO_REQUEST-pakketten en markeert een host als Up als het ECHO_RESPONSE van de host krijgt.

Bijvoorbeeld om de hosts van het subnet te scannen 192.168.1.0/24, je kunt doen:

fping -g 192.168.1.0/24

Voor een specifiek aantal gastheren, b.v. van 192.168.1.15 naar 192.168.1.140:

fping -g 192.168.1.15 192.168.1.140

fping is in hoge mate configureerbaar, b.v. hoeveel pakketten worden verzonden, de tijd om te wachten op antwoord, uitvoerformaat, enz.

Controleren man fping om meer idee te krijgen.


4
2018-02-21 02:21