Как получить список активных IP-адресов, MAC-адресов и имен NetBIOS в локальной сети?
-
01-07-2019 - |
Вопрос
Как получить список активных IP-адресов, MAC-адресов и NetBIOS имена в локальной сети?
Я хотел бы получить имя NetBIOS, IP и MAC-адреса для каждого хоста в локальной сети, желательно без необходимости ходить к каждому компьютеру и самому записывать все.
Как это сделать с Хост сценариев Windows/PowerShell/что угодно?
Решение
Как сказал Дарен Томас, используйте nmap.
nmap -sP 192.168.1.1/24
сканировать сеть 192.168.1.*
nmap -O 192.168.1.1/24
чтобы получить операционную систему пользователя.Для получения дополнительной информации прочтите справочную страницу.
man nmap
с уважением
Другие советы
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 = "сервер1", "сервер2", "сервер3"
Get -wmiobject win32_networkadapterConfiguration -computer $ Computers -filter "ipenabled = 'true'" | Выберите __server, iPaddress, Macaddress
В 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)