Get IP addresses and computer names in the same network

Solution 1:

nmap -sn 192.168.1.0/24 

Put your network number in it. It'll do a ping-sweep of your network 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.

Solution 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"


Solution 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?


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


Solution 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