Kommandoprompt-kommando for å pinge flere samtidig

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

Kommandoprompt-kommando for å pinge flere samtidig - 1

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.

Kommandoprompt-kommando for å pinge flere samtidig - 2

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.txt for å legge til resultater i en eksisterende fil, eller > logg.txt for å 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:

Kommandoprompt-kommando for å pinge flere samtidig - 3

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

Kommandoprompt-kommando for å pinge flere samtidig - 4

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

Kommandoprompt-kommando for å pinge flere samtidig - 5

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/

kommandoprompt ping nettverk Windows cmd feilsøking
Merk Informasjonen er kun for generell veiledning og kan variere etter system og nettverksoppsett.
Forfatter

Stefano Barcellos

Bidragsyter på Visite Barbados.

« Forrige innlegg
Hvordan dele en tabell i to i Google Docs

Relaterte innlegg