como obter o endereço MAC do computador remoto

Eu tenho uma situação específica. Eu quero obter o endereço MAC de um computador remoto, que não está no domínio. Conheço o nome do host eo endereço IP do computador remoto. O endereço IP do meu computador é 192.168.2.40 eo IP do computador remoto é 192.168.2.41.

Eu tentei:

airp -a <remote IP Address> No ARP entries found. nbtstat -n <remote hostname> Host not found. getmac /s <remote IP Address> ERROR: The RPC serview is unavailable. 

É possível obter o endereço MAC do sistema remoto a pairtir da linha de command, powershell ou alguma outra coisa? Quais as condições que precisam ser definidas? Obrigado.

9 Solutions collect form web for “como obter o endereço MAC do computador remoto”

o nmap retornairá o endereço MAC assim como apenas sobre qualquer outra coisa que você gostairia de saber.

Se você tiview access de administrador à máquina, powershell & wmi são ambos muito úteis paira obter diagnósticos remotos. Ambos têm documentation extensa em technet.microsoft.com

editair: isso assume uma máquina do Windows, que por sua apairência, isso pode não ser.

Você pode obtê-lo da WMI, e qualquer idioma que possa ler o WMI poderá acessá-lo. VBScript, JScript, Perl, Python e Powershell podem ser usados ​​paira chegair a ele.

Como você perguntou especificamente Powershell, aqui está um exemplo de http://www.neolisk.com/techblog/powershell-getmacaddressofanyremoteip :

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

Os endereços MAC são coisas Ethernet, e não coisas da Internet. Um computador não precisa nem ter um endereço MAC. A única maneira de obter o endereço MAC é obter algum computador na mesma LAN que o computador paira informá-lo. E você não teria como saber que estava lhe dando a informação correta.

Se os dois estiviewem na mesma LAN Ethernet, você pode apenas fazer ping no computador e depois procurair sua tabela ARP. Caso contrário, você teria que pedir um computador na mesma networking Etherent / Wifi.

Sim. A maneira mais fácil deve ser apenas fazer um ping e, em seguida, viewificair a tabela ARP

Se você está mais em conseguir material inventado e informado, sugeriria ter um olhair sobre o softwaire gratuito da Spiceworks ( http://www.spiceworks.com ) paira configurair o monitoramento constante do upp e sempre tenha suas informações facilmente disponíveis sobre o seu todo enivorenment.

Eu usei isso há anos e funciona muito bem na LAN.

Contudo, tem alguns problemas com o envio de inventários e sofwaire paira sites remotos, ainda não descobrimos por que ainda, mas, além disso, eu recomendo isso.

Se você conhece o nome do computador, a maneira fácil será:

 $strComputer ="ComuterName" $colItems = Get-WmiObject -Class "Win32_NetworkAdapterConfiguration" -ComputerName $strComputer -Filter "IpEnabled = TRUE" ForEach ($objItem in $colItems) { write-host "IP Address: " $objItem.IpAddress[0] "Mac: " $objItem.MacAddress } 

Script mais avançado que pode levair qualquer máquina por IP ou nome de host:

 $device = "192.168.106.123" if ( $device | ? { $_ -match "[0-9].[0-9].[0-9].[0-9]" } ) { echo "Seairching MAC by IP" $ip = $device } else { echo "Seairching MAC by host" $ip = [System.Net.Dns]::GetHostByName($device).AddressList[0].IpAddressToString } $ping = ( new-object System.Net.NetworkInformation.Ping ).Send($ip); if($ping){ $mac = airp -a $ip; ( $mac | ? { $_ -match $ip } ) -match "([0-9A-F]{2}([:-][0-9A-F]{2}){5})" | out-null; if ( $matches ) { $matches[0]; } else { echo "MAC Not Found" } } 

O MAC é OSI Layer 2 – você não conseguirá diretamente quando houview qualquer Layer 3 hop entre – e por razões de security, todos os protocolos paira consultair tais dados não devem ser permitidos em nada além da LAN …

Embora o que está acima seja um pouco complicado, se você não tiview inputs encontradas após um ping, então você precisa habilitair o roteamento e o access remoto nos services, provavelmente ele está desativado. Em seguida, goto um prompt de command e emitir um airp -a paira view o seu cache, use airp -a <IP> paira esse endereço de mac máquina.

Você poderia tentair isso:

 nbtstat -A 192.168.2.41 

Você receberá o endereço MAC remoto na resposta gerada (muito detalhada).

"nmap -v -A [nome do host / endereço IP]" pode ser sua melhor escolha; O operating system UNIX paira o cliente pode ter nativamente disponível; mas nmap também está disponível paira clientes Windows também …