Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a bunch of machines on an IP address range which I want to ping simultaneously as a quick and dirty way of telling which ones are switched on. What (free) software can I use to do this?

I'm using Windows Vista.

share|improve this question
1  
I tried angry ip scanner and free ip scanner and angry seems faster after increasing it's maximum thread count to the range of IPs I was after. –  Jon Cage Sep 24 '09 at 7:59
    
there's a slight chance this might trip off some kind of security. It might be a better bet to have the machines set to ping a central server at certain intervals, or check at the router. –  Journeyman Geek May 20 '11 at 0:43
add comment

8 Answers

up vote 16 down vote accepted

The quickest way is to use Angry IP Scanner

alt text

I use it for the same way you want to!

share|improve this answer
3  
It is free? I have been using it for years. –  William Hilsum Sep 23 '09 at 16:01
1  
Er.. yes it is? –  Jon Cage Sep 23 '09 at 16:03
1  
That's so good! :D +1 –  BloodPhilia Jun 23 '10 at 19:54
    
This sets off some Antivirus signatures for "Potentially Unwanted Program". I suggest using NirSoft's PingInfoView instead. –  Iszi Sep 5 '12 at 17:31
    
@iszi False positive... I still think this is the best program for the job. –  William Hilsum Sep 5 '12 at 23:26
show 3 more comments

I've used this command

for %%i in 200 to 254 do ping 10.1.1.%%i

in a batch file for a similar reason

share|improve this answer
3  
are you sure it does a simultaneous ping? or is it one machine after another! –  Vineet Menon Nov 29 '11 at 10:52
    
agreed, not simultaneous –  hpavc Aug 2 '13 at 14:02
    
You're right it's sequential rather than simultaneous –  Col Aug 23 '13 at 8:33
add comment

Free IP Scanner 1.6

Here is the range of IP addresses as you can notice in:

Alt text

share|improve this answer
add comment

You could just write a Bash script that loops through an IP address range and pings them. An example that pings addresses in the range 10.1.1.1 to 10.1.1.255 (inclusive):

for i in {100..255}
do
    ping 10.1.1.$i
done
share|improve this answer
    
I think that "500" wants to be 255 or less? –  David Mackintosh Sep 24 '09 at 2:41
2  
And I think ping 10.1.1.i probably wants to be ping 10.1.1.$i. –  Adam Luchjenbroers Jan 4 '10 at 6:14
1  
also not simultaneous –  hpavc Aug 2 '13 at 14:03
add comment

try fping

share|improve this answer
add comment

Nmap is available for Windows:

# nmap -sP 10.0.10.1-100
share|improve this answer
1  
nmap is absolutely a great piece of software –  Ram Sep 24 '09 at 4:06
add comment

Instead of manually pinging all IP addresses on your LAN you can do the following:

Open a Command Prompt and type:

FOR /L %i IN (1,1,254) DO ping -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt

-n 1 means that only 1 ping packet will be sent to each computer.

Change 192.168.0 to match you own network ID.

This will ping all IP addresses on the 192.168.0.0 network segment and create a text file called ipaddresses.txt in C:\, where it will list only the IP addresses that gave a reply.

You can also add -a to the ping command to resolve all the responding IP addresses to hostnames, but doing so will cause the script to take a considerable time to finish:

FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.0.%i | FIND /i "Reply">>C:\ipaddresses.txt
share|improve this answer
    
This still pings them one at a time though doesn't it? Angry IP scanner pings all IP's in the subnet at once by launching multiple threads so it takes very little time to complete a whole scan. –  Jon Cage Apr 12 '10 at 8:38
add comment

Save the below script on the server with an extension of .bat or .cmd and call the file from the command prompt. It should prompt you to enter the IP address range.

Please enter only three octets of the IP address.


@echo off

SET count=0
SET /p subnet=Please enter IP address range (for example, 192.168.0)

:start
SET /a count=%count%+1

cls
ECHO. & ECHO Trying %subnet%.%count% & ECHO.

ping -n 1 -w 1000 %subnet%.%count% >nul  
IF %errorlevel%==0 echo %subnet%.%count% UP >> c:\pingnet.log  
IF %errorlevel%==1 echo %subnet%.%count% DOWN >> c:\pingnet.log

IF %count%==254 goto :eof

GOTO start

Once the command has run, it will create a text file name pingnet.log in the root of C drive. That file should give you a list of used and down (free) IP addresses.

For example:

10.2.214.1 UP   
10.2.214.2 UP   
10.2.214.3 UP   
10.2.214.4 DOWN 

It is pretty simple to run, and it should save you loads of time.

share|improve this answer
1  
This is actually pretty slow compared to angry IP scanner as it does them one at a time. Unless most of the IP range is used, you'd have to wait minutes for this approach to give you an answer. –  Jon Cage Dec 14 '11 at 7:25
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.