Windows 如何获取LAN上活动IP地址、MAC地址和NetBIOS名称的列表?
如何获取LAN上活动IP地址、MAC地址和名称的列表 我想为局域网上的每台主机获取NetBIOS名称、IP和IP地址,最好不要走到每台电脑前亲自记录这些内容Windows 如何获取LAN上活动IP地址、MAC地址和NetBIOS名称的列表?,windows,networking,powershell,sysadmin,wsh,Windows,Networking,Powershell,Sysadmin,Wsh,如何获取LAN上活动IP地址、MAC地址和名称的列表 我想为局域网上的每台主机获取NetBIOS名称、IP和IP地址,最好不要走到每台电脑前亲自记录这些内容 如何使用/PowerShell/whatever实现这一点?如果您使用的是DHCP,那么服务器将为您提供所有这些信息的列表 本网站有一个关于使用powershell获取网络信息的良好教程 如果您需要快速获取计算机名列表,可以使用“网络视图”。也有一个在nbmac看看,虽然我不确定它的工作状态下XP。另一种选择是使用nbtstat-a(一旦您
如何使用/PowerShell/whatever实现这一点?如果您使用的是DHCP,那么服务器将为您提供所有这些信息的列表 本网站有一个关于使用powershell获取网络信息的良好教程
如果您需要快速获取计算机名列表,可以使用“网络视图”。也有一个在nbmac看看,虽然我不确定它的工作状态下XP。另一种选择是使用nbtstat-a(一旦您使用net view列出工作站)正如Daren Thomas所说,使用nmap
nmap -sP 192.168.1.1/24
扫描网络192.168.1*
nmap -O 192.168.1.1/24
获取用户的操作系统。有关更多信息,请阅读手册页
man nmap
问候
arp -a
这就得到了当前机器在网络上所知道的一切
(我把它作为第二个选项放在那里,因为nmap并不是普遍安装的)。在PowerShell中,您可以执行以下操作: $computers=“server1”、“server2”、“server3” 获取WmiObject Win32\u NetworkAdapter配置-计算机$computers-筛选“IPEnabled='true'”;在PowerShell中选择“服务器、IPAddress、MACAddress”:
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)
然而,arp将只在你有路由到该网络段上的每台电脑时才起作用;所以你需要先ping每个IP!您可能可以先使用广播ping,但这取决于机器对ping的响应。事实证明,在我的特定LAN设置中,在linux设备上使用nmap要容易得多,即使nmap无法找出netbios名称。当然,我应该花一些时间学习powershell和WMI,只是为了好玩。我找不到让
nmap
返回MAC地址的选项。@npdoty:正如mana提到的:nmap-O 192.168.1.1/24返回MAC地址(以及其他信息),请注意,您可能需要是root用户或sudo用户才能这样做。