Indagamos en todo el mundo online para de este modo tenerte la solución para tu problema, si continúas con preguntas déjanos tu duda y responderemos porque estamos para servirte.
Solución:
Solución 1:
Las direcciones MAC son cosas de Ethernet, no cosas de Internet. Una computadora ni siquiera necesita tener una dirección MAC. La única forma de obtener la dirección MAC es conseguir alguna computadora en la misma LAN que esa computadora para que te la diga. Y no tendría forma de saber que le estaba dando la información correcta.
Si los dos están en la misma LAN Ethernet, solo pueden ping
la computadora y luego mire en su tabla ARP. De lo contrario, tendría que preguntar a una computadora en la misma LAN Etherent/Wifi.
Solución 2:
Puede obtenerlo de WMI, y cualquier idioma que pueda leer WMI podrá acceder a él. Se pueden usar VBScript, JScript, Perl, Python y Powershell para llegar a él.
Dado que preguntó específicamente sobre Powershell, aquí hay un ejemplo de 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
Solución 3:
nmap devolverá la dirección MAC, así como cualquier otra cosa que desee saber.
Si tiene acceso de administrador a la máquina, powershell y wmi son muy útiles para obtener diagnósticos remotos. Ambos tienen una extensa documentación en technet.microsoft.com
editar: esto supone una máquina con Windows, que por lo que parece, podría no serlo.
Solución 4:
sí. La forma más fácil debería ser simplemente hacer un ping y luego verificar la tabla ARP
Si está más interesado en inventariar e informar cosas, le sugiero que eche un vistazo al software gratuito de Spiceworks (http://www.spiceworks.com) para configurar un monitoreo constante y tener siempre su información fácilmente disponible sobre todo su medio ambiente
Lo he usado durante años y funciona muy bien en LAN.
Sin embargo, tiene algunos problemas con el envío de inventarios de software a sitios remotos, aún no he descubierto por qué, pero aparte de eso, lo recomiendo encarecidamente.
Solución 5:
Si conoce el nombre de la computadora, la forma 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 más avanzado que puede tomar cualquier máquina por IP o nombre de host:
$device = "192.168.106.123"
if ( $device | ? $_ -match "[0-9].[0-9].[0-9].[0-9]" )
echo "Searching MAC by IP"
$ip = $device
else
echo "Searching MAC by host"
$ip = [System.Net.Dns]::GetHostByName($device).AddressList[0].IpAddressToString
$ping = ( new-object System.Net.NetworkInformation.Ping ).Send($ip);
if($ping)
$mac = arp -a $ip;
( $mac
Aquí tienes las reseñas y calificaciones
Si te gusta la programación, puedes dejar un enunciado acerca de qué le añadirías a este escrito.