30

I know there is a single line of a command and its arguments that can help display all computer IP addresses (those that are being used) on a LAN, and my computer is also a client, as one of those displayed, but I forgot. What is it?

migrated from stackoverflow.com Dec 20 '12 at 23:16

This question came from our site for professional and enthusiast programmers.

28

You could do the arp -a command to show all ARP entries in the table about computers on your network.

Source

  • 6
    It shows every system your computer is aware of/talked to - however, it may not be complete - I ran a quick experiment with arp -a and it didn't show one or two of my systems till I pinged it. – Journeyman Geek Jan 18 '14 at 5:46
  • Ya, like the link I posted said, it won't show everything unless it has them stored in the tables so so machines won't be shown but it does do a pretty good list. – GigabitP Jan 18 '14 at 17:35
  • Welcone to Stack Exchange, Gigabit Pony! When a link makes up most of your answer, you should always quote the important parts in case it dies later. See also the howto on writing good answers. – Blacklight Shining Jan 23 '14 at 4:09
17

Not everything with an IP address is a computer - I found none of these suggestions returned all active IP addresses - in fact most returned very few. My home network has a combination of wired and wireless devices and two routers, mobile phones, TV, PVR, Apple AirPort and probably a few things I have forgotten. I used the following to scan all addresses on the 192.168.1.xxx subnet:

for /L %i in (0,1,255) do ping -n 1 -w 250 192.168.1.%i>>ipaddress.txt

The resulting file ipaddress.txt contains the ping results for all addresses and I looked for those with "Received = 1" - currently 16 addresses returned a result - I only have 4 computers in the house - and they were not all on.

  • A suggested edit (rolled back) for /L %i in (0,1,255) do ping -n 1 192.168.1.%i -4 | findstr -m "bytes=32" >> ipaddress.txt has merit, but is not fundamental to the answer, not consistent with the rest of the answer which used Received = 1 rather than bytes=32, and is not necessarily the way I'd have done it. I am adding this comment should anyone find the suggestion useful. – Clifford Jul 21 '17 at 19:57
  • 1
    for /L %i in (1,1,254) might be more appropriate, since xxxxxx.0 is the address of the whole network and xxxxxx.255 is the broadcast address. – Scott Jan 12 '18 at 5:30
13

There is the net view /all command which will list all of the computer names that are connected to the same LAN.

From that you can retrieve the individual IP addresses using the nslookup <computer name> command or write a batch script to do it for you.

Here is an example batch I threw together to illustrate.

@echo off
setlocal EnableDelayedExpansion
set "xNext="
set "xComputer="
for /f %%A in ('net view /all') do (
    set "xComputer=%%~A"
    if "!xComputer:~0,2!"=="\\" for /f "tokens=2,* delims=. " %%X in ('nslookup %%A') do (
        if "!xNext!"=="1" (
            echo.!xComputer! = %%X.%%Y
            set "xNext=0"
        )
        if "!xComputer:~2!"=="%%~X" set "xNext=1"
    )
)
endlocal
pause
5

Aside from arp -a, net view /all, or writing a batch script there is no native/built-in command line to do this (at least not that I know of).

If you're willing to use a non-native command, I would suggest using Nmap. You can run nmap -sn 192.168.0.0/24 (replacing the subnet with the appropriate one for your LAN) to achieve what you're looking for, more reliably so than net view /all or arp -a in my opinion.

2

ipconfig /all (use forward slash, not backwards)

  • 17
    ipconfig lists the interfaces of the PC itself and not the IP addresses used on the LAN. – Christian Aug 11 '15 at 15:47
0
echo ls %USERDNSDOMAIN%|nslookup
  • 8
    Welcome to SU. Can you please elaborate on what the command do? – Martin Prikryl May 18 '13 at 8:29
0

This is my quick solution. It tells you what type of device is connected at each ip address:

netstat -r 
0

display all computer IP addresses (those that are being used)

I think you might mean netstat -a this gives you an active list. If you want to know the program using the ip address then use netstat -b (open as administrator).

  • Technically speaking, netstat -a dumps a list of current network connections. The left IP address column contains the local interface. – Ben N Feb 14 '16 at 21:09
0

As indicated by someone else, you can use arp -a however make sure that you ping a broadcast address first so that ARP reports all the devices. For example, ping 192.168.0.255

you get a list of all devices connected to the network by their IP and MAC addresses. you can look up the MAC addresses on a website like https://aruljohn.com/mac.pl to find out who the vendor of the NIC is. This should help you narrow down what most of the devices are. i.e. computers, printers, TV, cell phone, etc..

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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