Een ping-sweep uitvoeren onder OS X Terminal
Als netwerk- of systeembeheerder is het soms wel eens handig om te weten welke IP adressen er in je netwerk actief zijn. Door een apparaat in het netwerk te pingen op het IP adres kun je controleren of deze online is in het netwerk.
Helaas is het met het ping commando niet mogelijk om meerdere IP adressen of een complete IP range te pingen (een zogenaamde ping-sweep). Met behulp van het for
commando in combinatie met ping
is dit wel mogelijk. Je kan hiervoor het onderstaande commando gebruiken:
for i in {1..254}; do ping -c 1 -W 1 netwerk.$i | grep 'from'; done
Met behulp van het for
gaan we alle IP adressen eindigend op 1 t/m 254 pingen. Vervang netwerk
door het netwerk id en eindig met een '.', het netwerk ID zal worden aangevuld met de waarde uit for (i
). Met behulp van het grep
commando laten alleen de IP adressen zien die reargeren op het ping commando.
Voorbeeld:We willen alle IP adressen pingen in het classe C netwerk 10.0.0.0/24, in dat geval gebruiken we het volgende commando.
for i in {1..254}; do ping -c 1 -W 1 10.0.0.$i | grep 'from'; done
Dit genereert een soort gelijke output als deze:
In het bovenstaande resultaat zijn er binnen het 10.0.0.0/24 netwerk 3 IP adressen actief namelijk 10.0.0.101, 10.0.0.111 en 10.0.0.112.
Wanneer je de ping-sweep voortijdig wilt afbreken dan is dat mogelijk met behulp van de toetscombinate ctrl + z.
Auteur | Richard IJzermans | |
Datum | 19/05/2011 09:15 | |
Categorie | macOS | |
Reacties
D’r is ook zoiets als nmap… dit is onderdeel van de development tools van OSX.
Een krachtige CLI tool die je in sommige gevallen alleen als administrator mag draaien.
Kijk hier (http://nmap.org/bennieston-tutorial/) voor meer info.
@Kor: dit is ook een heel simplistische manier van pingen. Je pingt gewoon binnen een bepaalde range welgeteld maar 1x naar een adres. Als er dan niet binnen die tijd wordt gereageerd levert dat een fail op. Je kunt natuurlijk opgeven dat ie langer dan 1x moet pingen. Er zijn echter ook zat tools die standaard dit soort zaken al kunnen doen en tools die een stuk verder gaan (denk aan nmap) maar de bottom line hier is (denk ik) dat je met ping standaard al heel veel dingen kunt en je dus niet altijd naar die andere tools hoeft te grijpen (doe maar eens man ping, je hebt wat meer mogelijkheden wanneer je gaat sweepen).
Het script vind mijn router op 192.168.1.254 niet. Als ik dit IP-adres gewoon Ping, dan krijg ik wel een reactie.
Dit zou ook moeten voldoen en het is een stuk makkelijker te onthouden “ping -c 2 10.0.0.255” … :)
Keep it to the source… bash rules
Zelf ben ik ook een terminal liefhebber, maar vind deze info te summier. Ik gebruik Fing hiervoor. http://www.over-look.com/
Ik hou wel gestoei via de command line, maar start in dit geval toch liever even IP Scanner (van de maker van het eveneens geweldige DropCopy) op: http://10base-t.com/software/macintosh/ipscanner.html
Grappig klein shell scriptje. Het ligt zo voor de hand maar nooit over na gedacht om het in 1 regel te stoppen. Voor het betere werk kun natuurlijk nog verder gaan met bijv. nmap (OSX binary)