views:

1804

answers:

5

How do I get a list of the active IP-addresses, MAC-addresses and NetBIOS names on the LAN?

I'd like to get NetBIOS name, IP and MAC addresses for every host on the LAN, preferably not having to walk to every single PC and take note of the stuff myself.

How to do that with Windows Script Host/PowerShell/whatever?

+2  A: 

nmap

Daren Thomas
+2  A: 

If you're using DHCP then the server will give you a list of all that information.

This website has a good tutorial on using powershell to get networking information http://www.powershellpro.com/powershell-tutorial-introduction/powershell-scripting-with-wmi/

If you neet to get quick list of computer names you can use "net view". Also have a look at nbmac although I'm unsure of it's working status under XP. Another option could be to use nbtstat -a (once you've used net view to list workstations)

Tubs
I'm definitely bookmarking that tutorial. Thanks!
agnul
+6  A: 

As Daren Thomas said, use nmap.

 nmap -sP 192.168.1.1/24

to scan the network 192.168.1.*

 nmap -O 192.168.1.1/24

to get the operating system of the user. For more information, read the manpage

 man nmap

regards

mana
+2  A: 
arp -a

That gets everything the current machine knows about on the network.

(I'm putting this up there as a second option, since nmap isn't universally installed).

Matthew Schinckel
However arp will only work if you have routes to every PC on that segment of the network; so you need to ping every IP first!
blowdart
+1  A: 

In PowerShell you can do something like:

$computers = "server1","server2","server3"

Get-WmiObject Win32_NetworkAdapterConfiguration -computer $computers -filter "IPEnabled ='true'" | select __Server,IPAddress,MACAddress

Shay Levy
Turns out that in my specific LAN setup using nmap on a linux box is much easier, even if nmap can't figure out netbios names. Of course I should take some time to learn powershell and WMI, just for fun.
agnul