Introduksjon til samtidig pinging i Windows
Når du jobber med nettverksadministrasjon eller feilsøking, oppstår det ofte et behov for å sjekke tilgjengeligheten til flere IP-adresser eller vertsnavn samtidig. I Windows Kommandoprompt kan du ikke bare skrive inn flere adresser etter ping-kommandoen, fordi den opprinnelige ping-kommandoen bare aksepterer én destinasjon om gangen. Likevel finnes det enkle og effektive metoder for å automatisere dette ved hjelp av løkker, filtrering og skripting. Denne artikkelen går i dybden på hvordan du kan pinge flere vertsmaskiner samtidig i Kommandoprompt, og viser deg alternative tilnærminger som fungerer i andre miljøer.
Å pinge flere adresser samtidig er nyttig når du for eksempel skal kartlegge et lokalt nettverk, oppdage ledige IP-er eller overvåke tilgjengeligheten til flere servere. Med den rette kommandoen kan du spare mye tid og få en oversikt over nettverksstatusen på få sekunder. De vanligste metodene involverer bruk av FOR-løkker, som kan iterere over et IP-område, kombinert med filtrering for å bare vise svarene som faktisk gir respons.
Grunnleggende om FOR-løkke for pinging av IP-områder
Den mest brukte kommandoen for å pinge et helt subnett i Windows er å kombinere ping med en FOR-løkke. Løkken itererer over en sekvens med tall, som du deretter setter inn i en IP-adresse. For eksempel, hvis du vil pinge alle adresser fra 192.168.0.1 til 192.168.0.254, skriver du følgende:
FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i

Her starter %i på 1, øker med 1 for hver iterasjon og stopper ved 254. For hvert tall blir ping utført med én enkelt forespørsel (-n 1). Dette er en sekvensiell prosess, så alle adressene blir pinget etter hverandre, men det skjer likevel i én enkelt kommandolinje. Resultatet blir en lang utskrift der du må lete etter "Reply from"-meldingene for å se hvilke adresser som svarer.
For å gjøre utskriften mer lesbar, kan du kombinere løkken med FIND-kommandoen. Dette filtrerer bort alle linjer som ikke inneholder "Reply". Kommandoen blir da:
FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply"
Dette viser bare vellykkede svar, og du kan enkelt se hvilke IP-adresser som er i bruk. Hvis du vil lagre resultatene til en tekstfil for senere analyse, legger du til " > resultater.txt" på slutten.

Filtrering og presentasjon av svar med FIND
FIND-kommandoen er et kraftig verktøy for å trekke ut relevante data fra utskriften. I kombinasjon med FOR-løkken kan du også filtrere på "Destination host unreachable" eller "Request timed out" hvis du ønsker å se feilmeldinger. For å gjøre filtreringen enda mer spesifikk, kan du bruke FINDSTR med regulære uttrykk, men for de fleste formål er /i (case-insensitive) og "Reply" tilstrekkelig.
Her er en liste over nyttige modifikasjoner du kan gjøre:
- Bruk
FIND /i "Reply"for å vise vellykkede svar. - Bruk
FIND /i "timed out"for å se tidsavbrudd. - Bruk
FIND /v "Reply"for å vise alle linjer som ikke inneholder "Reply" (altså feil og timeout). - Legg til
>> logg.txtfor å legge til resultater i en eksisterende fil, eller> logg.txtfor å overskrive.
Hvis du vil ha en mer visuell fremstilling, kan du kombinere filtreringen med enkel tekstbehandling. For eksempel kan du telle antall svar med FIND /c "Reply". Dette er spesielt nyttig når du skal sjekke om et helt subnett svarer, eller om det er mange enheter som mangler.
Automatisering med PowerShell for samtidig pinging
Selv om FOR-løkken fungerer fint i Kommandoprompt, er PowerShell langt kraftigere for samtidige oppgaver. PowerShell kan kjøre flere ping-instanser parallelt ved hjelp av såkalte jobber (Jobs). Dette sparer tid fordi du ikke trenger å vente på at en ping skal fullføre før den neste starter. En enkel metode for å pinge flere IP-er samtidig i PowerShell er:

1..254 | ForEach-Object { Start-Job -ScriptBlock { param($ip) Test-Connection -ComputerName "192.168.0.$ip" -Count 1 -Quiet } -ArgumentList $_ } | Receive-Job -Wait
Denne kommandoen oppretter en jobb for hver IP-adresse og kjører Test-Connection (PowerShells versjon av ping) i bakgrunnen. Når alle jobbene er ferdige, hentes resultatene. Du kan også bruke Ping.exe direkte i jobber, men Test-Connection er mer sømløs i PowerShell. På Reddit finnes det diskusjoner om hvordan du kan gjøre kontinuerlig pinging av flere IP-er med PowerShell. For eksempel kan du kjøre en jobb som pinger kontinuerlig og logger tidsstempler til en fil, noe som er nyttig for langtidsovervåkning.
Alternativ for Linux og Unix: fping
I Linux- og Unix-miljøer har du det åpne verktøyet fping, som er spesialbygget for å pinge flere vertsmaskiner samtidig. Du kan installere det med pakkebehandleren (for eksempel sudo apt install fping på Debian/Ubuntu). En av de mest praktiske funksjonene er muligheten til å pinge et helt subnett i én kommando:
fping -g 192.168.0.0/24

Denne kommandoen pinger alle 256 adressene i nettverket og viser hvilke som svarer, raskere enn en sekvensiell løkke. fping kan også akseptere en liste over vertsnavn eller IP-er direkte: fping host1 host2 host3. En blogg av Wel. R. Braga gir en grundig gjennomgang av fping og dens muligheter. For Windows-brukere finnes det lignende tredjepartsverktøy, men de fleste holder seg til den innebygde FOR-løkken eller PowerShell.
Sammenligning av metoder for samtidig pinging
For å gi en rask oversikt, viser tabellen nedenfor de vanligste metodene med deres fordeler og ulemper.
| Metode | Plattform | Samtidighet | Krav til ekstra verktøy | Kommentar |
|---|---|---|---|---|
| FOR-løkke + FIND | Windows Kommandoprompt | Sekvensiell | Ingen | Enkelt å bruke, men tregt for store nettverk |
| PowerShell Jobs | Windows PowerShell | Parallell | Ingen (innebygd) | Rask og fleksibel, men krever litt PowerShell-kunnskap |
| fping | Linux/Unix | Parallell | Må installeres | Raskest for subnett, men kun for Unix-lignende systemer |
| Tredjeparts GUI-verktøy | Windows | Parallell | Ekstern programvare | Kan ha ekstra funksjoner som grafisk visning |
Tabellen viser at hvis du bare har standard Kommandoprompt tilgjengelig, er FOR-løkken den eneste muligheten, men den er ikke optimal for store subnett. PowerShell gir deg en god balanse mellom ytelse og enkelhet, mens fping er best i Unix-miljøer.
Avanserte tips for effektiv bruk
Når du jobber med FOR-løkker i Kommandoprompt, er det noen nyanser du bør være oppmerksom på. For det første må du huske at hvis du skriver kommandoen direkte i terminalen, bruker du ett prosenttegn (%i). Skriver du derimot kommandoen i en batch-fil (.bat eller .cmd), må du doble prosenttegnet (%%i). Videre kan du justere antall ping-forespørsler med -n, og du kan sette en timeout med -w for å vente på svar i millisekunder (standard er 4000 ms, men du kan sette den lavere for raskere gjennomkjøring).

En annen nyttig teknikk er å kombinere flere løkker for å pinge ulike IP-områder i én kjøring. For eksempel kan du først pinge 192.168.0.0/24 og deretter 10.0.0.0/24 ved å kjøre to FOR-løkker etter hverandre, eller du kan lage en batch-fil som tar imot parameteren for subnett. Dette automatiserer en stor del av nettverkskartleggingen.
Hvis du vil unngå unødvendig utskrift, kan du omdirigere alt til en fil og senere filtrere med FIND. For eksempel: FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i >> full_log.txt. Deretter kan du kjøre FIND /i "Reply" full_log.txt for å hente ut de vellykkede svarene.
Oppsummering
Å pinge flere IP-adresser samtidig i Kommandoprompt er fullt mulig med FOR-løkker og filtrering. Selv om prosessen er sekvensiell, gir den et enkelt og innebygd verktøy som fungerer i alle Windows-miljøer. For mer avanserte behov eller større nettverk, tilbyr PowerShell parallell kjøring, mens Linux-brukere kan ty til fping for optimal hastighet. Uansett hvilken metode du velger, er målet å effektivisere nettverksovervåkning og feilsøking. Ved å bruke de teknikkene som er beskrevet i denne artikkelen, kan du raskt få innsikt i nettverkets tilstand og identifisere enheter som ikke svarer.
Referanser
Følgende kilder ble brukt i utarbeidelsen av denne artikkelen:
Microsoft. (2021). Ping. Microsoft Learn Windows Commands Reference. Hentet fra https://learn.microsoft.com/pt-br/windows-server/administration/windows-commands/ping
SuperUser. (2010). How can I ping a range of IP addresses simultaneously? Q&A Stack Exchange. Hentet fra https://qastack.com.br/superuser/45687/how-can-i-ping-a-range-of-ip-addresses-simultaneously-closed
Braga, W. R. (2019). Fping – um ping para múltiplos hosts. Blog Wel. R. Braga. Hentet fra https://blog.welrbraga.eti.br/fping-um-ping-para-multiplos-hosts/
Reddit. (2023). How to do continuous ping to multiple IPs and log results? PowerShell Community. Hentet fra https://www.reddit.com/r/PowerShell/comments/17949iu/how_to_do_continuous_ping_to_multiple_ips_and/




