Как получить список активных IP-адресов, MAC-адресов и NetBIOS имен в локальной сети?
Я хотел бы получить NetBIOS-имя, IP-адрес и MAC-адреса для каждого хоста в локальной сети, предпочтительно не нужно ходить на каждый отдельный ПК и сам принимать к сведению.
Как это сделать с Windows Script Host / PowerShell / что угодно?
Как сказал Дарен Томас, используйте nmap.
nmap -sP 192.168.1.1/24
для сканирования сети 192.168.1. *
nmap -O 192.168.1.1/24
чтобы получить операционную систему пользователя. Для получения дополнительной информации читайте справочную страницу
man nmap
1010 * привет *
arp -a
Получает все, что текущая машина знает в сети.
(я добавляю это как второй вариант, так как nmap не универсально установлен).
Если вы используете DHCP, сервер предоставит вам список всей этой информации.
На этом сайте есть хорошее руководство по использованию powershell для получения сетевой информации http://www.powershellpro.com/powershell-tutorial-introduction/powershell-scripting-with-wmi/
Если вы хотите получить быстрый список имен компьютеров, вы можете использовать «net view». Также взгляните на nbmac, хотя я не уверен, что он работает под XP. Другим вариантом может быть использование nbtstat -a (как только вы используете net view для отображения списка рабочих станций)
В PowerShell вы можете сделать что-то вроде:
$ computers = "server1", "server2", "server3"
Get-WmiObject Win32_NetworkAdapterConfiguration -computer $ computers -filter "IPEnabled = 'true'" | выберите __Server, IP-адрес, MAC-адрес
В PowerShell:
function Explore-Net($subnet, [int[]]$range){ $range | % { test-connection "$subnet.$_" -count 1 -erroraction silentlycontinue} | select -Property address | % {[net.dns]::gethostbyaddress($_.address)} }
Пример:
Explore-Net 192.168.2 @(3..10)