Scenario / Questions

What is the command that can be used to get the IP address and the names of the computers that are located in the same network?

I am running Windows

Find below all possible solutions or suggestions for the above questions..

Suggestion: 1
nmap -sP 192.168.1.0/24 

Put your network number in it. It’ll do a ping-sweep of your net and report the reverse DNS’s of the up machines. Won’t find down machines.

C:> for /L %N in (1,1,254) do @nslookup 192.168.0.%N >> names.txt

That’ll do a reverse lookup of every IP in your subnet.

Suggestion: 2

Try using this simple command prompt code.
To get all the network ips arp -a
to find where an ip is coming from tracert "ip"

Suggestion: 3

If you want to go for “regular”, nmap will do just fine.

If you want to go for “obscure”, Doxpara Paketto Keiretsu will do that with scanrand and friends. Not exactly “offical” tools but certainly useful for finding nodes you can’t otherwise see. And did I mention it’s fast?

Suggestion: 4

If you don’t mind installing this small app: Radmin’s Advanced IP Scanner (Freeware for Windows)

Provides you with Local Network hosts:

  • IP
  • NetBIOS name
  • Ping time
  • MAC address
  • Remote shutdown (windows only, I pressume), and others

Advanced IP Scanner is a fast, robust and easy-to-use IP scanner for Windows. It easily lets you have various types of information about local network computers in a few seconds! Advanced IP Scanner gives you one-click access to many useful functions – remote shutdown and wake up, Radmin integration and more! Powered with multithread scan technology, this program can scan hundreds computers per second, allowing you to scan ‘C’ or even ‘B’ class network even from your modem connection.

Suggestion: 5

Using Powershell – dmitrysotnikov wrote a nice function, this is from:
http://dmitrysotnikov.wordpress.com/2008/03/07/get-computer-by-ip-address/

does need some error handling for cleaner ‘time-out’ and ‘host not found’ replies.

function Get-ComputerNameByIP {
param(
$IPAddress = $null
)
BEGIN {
}
PROCESS {
if ($IPAddress -and $_) {
throw ‘Please use either pipeline or input parameter’
break
} elseif ($IPAddress) {
([System.Net.Dns]::GetHostbyAddress($IPAddress))
} elseif ($_) {
trap [Exception] {
write-warning $_.Exception.Message
continue;
}
[System.Net.Dns]::GetHostbyAddress($_)
} else {
$IPAddress = Read-Host “Please supply the IP Address”
[System.Net.Dns]::GetHostbyAddress($IPAddress)
}
}
END {
}
}

#Use any range you want here
1..255 | ForEach-Object {”10.20.100.$_”} | Get-ComputerNameByIP

Suggestion: 6

There is a tool i like to use especially when i’d like to find a free IP in the chaos i like to call my network. It is called IP-Tools by KS-Soft and does @sysadmin1138s suggestion graphically. It has 18 other great utilities as well. It is a great little swiss army knife

Suggestion: 7

May help:

If you do have a server name and want to look up the IP for it (vice versa too), use cmd => nslookup “put your server name here”