如何获取远程计算机的MAC地址

cul*_*ter 9 networking windows powershell remote windows-command-prompt

我有具体情况。我想从不在域中的远程计算机获取 MAC 地址。我知道远程计算机的主机名和 IP 地址。我的电脑IP地址是192.168.2.40,远程电脑IP是192.168.2.41。

我试过了:

arp -a <remote IP Address>
No ARP entries found.

nbtstat -n <remote hostname>
Host not found.

getmac /s <remote IP Address>
ERROR: The RPC server is unavailable.
Run Code Online (Sandbox Code Playgroud)

是否可以从命令行、powershell 或其他方式获取远程系统的 MAC 地址?需要设置哪些条件?谢谢你。

Dav*_*rtz 8

MAC 地址是以太网的东西,而不是互联网的东西。计算机甚至不需要 MAC 地址。获取 MAC 地址的唯一方法是让与该计算机位于同一 LAN 上的某台计算机告诉您。而且您无法知道它为您提供了正确的信息。

如果你们两个在同一个以太网局域网中,你可以只ping在电脑上查看你的 ARP 表。否则,您将不得不询问同一以太网/Wifi LAN 中的计算机。

  • @gWaldo:我支持他们两个。我身后有一台计算机,它具有部分 T1 连接并且没有其他网络接口。它没有 MAC 地址,但具有 Internet 连接性。请告诉我如何判断远程计算机是否告诉您正确的 MAC 地址而不是无意义的 MAC 地址。 (3认同)
  • 我同意当您不使用以太网时,MAC 不是 IP 连接的必要条件——这是绝对正确的,*但是* 说您不能相信 WMI 返回的内容,因为 MAC 有点牵强。如果你要采取这样的边缘立场,你应该详细地捍卫它,而不是仅仅期望人们接受你的少数观点作为真理。如何配置 Windows 客户端,以便 WMI 查询返回的 MAC 地址值与网络堆栈用于同一 NIC 的值不同? (3认同)
  • 因为至少有十几种方法可以使用 psexec、PowerShell 和 Get-WMIObject 或 Invoke-Command、wmic 等工具获取远程计算机的 MAC 地址。 (2认同)

gWa*_*ldo 6

你可以从 WMI 获取它,任何可以读取 WMI 的语言都可以访问它。VBScript、JScript、Perl、Python 和 Powershell 都可以用来实现它。

由于您专门询问了 Powershell,以下是来自http://www.neolisk.com/techblog/powershell-getmacaddressofanyremoteip的示例:

param ( $Computer , $Credential )
#to make it work without parameters
if($Computer -eq $null) { $Computer = $env:COMPUTERNAME }
#program logic
$hostIp = [System.Net.Dns]::GetHostByName($Computer).AddressList[0].IpAddressToString
if($Credential) {
    $Credential = Get-Credential $Credential
    $wmi = gwmi -Class Win32_NetworkAdapterConfiguration -Credential $Credential -ComputerName $Computer
} else {
    $wmi = gwmi -Class Win32_NetworkAdapterConfiguration -ComputerName $Computer 
}
return ($wmi | where { $_.IpAddress -eq $hostIp }).MACAddress
Run Code Online (Sandbox Code Playgroud)


jha*_*yes 6

nmap将返回 MAC 地址以及您想知道的任何其他信息。

如果您对机器具有管理员访问权限,powershell 和 wmi 在获取远程诊断方面都非常有用。他们都在 technet.microsoft.com 上有大量文档

编辑:这假设是一台 Windows 机器,从它的外观来看,这可能不是。

  • 他确实用 Windows 和 Powershell 标记了这个问题...... (2认同)